From 00da7e9035e9db20dceccfa72d9a4ecc3145202d Mon Sep 17 00:00:00 2001 From: Uchechukwu Obasi Date: Wed, 6 Aug 2025 14:34:49 +0100 Subject: [PATCH] Feat: New website (#6286) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: change theme font to satoshi font Signed-off-by: thisisobate * chore: create hero section Signed-off-by: thisisobate * chore: improve hero and need to know more sections Signed-off-by: thisisobate * chore: rename need to know more to what is knative Signed-off-by: thisisobate * chore: create why serverless section Signed-off-by: thisisobate * chore: update feature icons and knative components sections Signed-off-by: thisisobate * chore: update hero title headings Signed-off-by: thisisobate * chore: update testimonial section Signed-off-by: thisisobate * chore: update case studies items Signed-off-by: thisisobate * chore: update why serverless feature cards with new content Signed-off-by: thisisobate * chore: tweak width of kelsey testimonial to align appropriately Signed-off-by: thisisobate * chore: tweak top nav layout Signed-off-by: thisisobate * chore: update top nav links Signed-off-by: thisisobate * chore: change “readdocs” to “docs” Signed-off-by: thisisobate * chore: add spacing to the right of the nav menu Signed-off-by: thisisobate * chore: fix about link Signed-off-by: thisisobate * chore: remove home from sub nav Signed-off-by: thisisobate * chore: nit fix Signed-off-by: thisisobate * chore: nit fix Signed-off-by: thisisobate * chore: change cta button font color to white on hover Signed-off-by: thisisobate * chore: fix styling for testimonial section Signed-off-by: thisisobate * chore: make main headline font color to be black Signed-off-by: thisisobate * chore: rearrange nav items on the blog page Signed-off-by: thisisobate * chore: align serverless content block to center Signed-off-by: thisisobate * chore: reduce feature icons size on mobile screens Signed-off-by: thisisobate * chore: maintain consistent border radius size across cards Signed-off-by: thisisobate * chore: make knative components container span entire width on mobile Signed-off-by: thisisobate * chore: fix case studies section to be mobile responsive Signed-off-by: thisisobate * chore: make hero section mobile responsive Signed-off-by: thisisobate * chore: nit fix Signed-off-by: thisisobate * chore: fix section spacing in mobile Signed-off-by: thisisobate * chore: nit fix Signed-off-by: thisisobate * chore: reduce version warning title font size to be smaller Signed-off-by: thisisobate * chore: automatically hide duplicate menu items in sub nav using css Signed-off-by: thisisobate * chore: nit fix Signed-off-by: thisisobate * chore: conform text colors to match design Signed-off-by: thisisobate * chore: cleanup code Signed-off-by: thisisobate * chore: add the correct kelsey testimonial copy on homepage Signed-off-by: thisisobate * chore: fix some layout issues on mobile Signed-off-by: thisisobate * chore: Remove second paragraph from Kelsey testimonial on front page Signed-off-by: thisisobate * chore: Update Knative diagram image to the latest one with eventing icon as spiral Signed-off-by: thisisobate * chore: Update card background to match page background color Signed-off-by: thisisobate * chore: Put Kelsey testimonials in quote and make quote prominent Signed-off-by: thisisobate * chore: make kelsey testimonial card clickable Signed-off-by: thisisobate * chore: update knative components overall design Signed-off-by: thisisobate * chore: make other card containers adopt new card design Signed-off-by: thisisobate * chore: change primary bg color to white Signed-off-by: thisisobate * chore: fix background bleed in kelsey testimonial image Signed-off-by: thisisobate * chore: text align feature contents to the left Signed-off-by: thisisobate * chore: make PNC card to be same size as others Signed-off-by: thisisobate * chore: reduce border width on hover to reduce flickering Signed-off-by: thisisobate --------- Signed-off-by: thisisobate --- blog/config/nav.yml | 3 +- config/nav.yml | 4 - .../home-images/blue_autoscaling_icon.svg | 9 - .../home-images/blue_event_based_icon.svg | 6 + .../blue_event_intergrations_icon.svg | 6 +- .../home-images/blue_functions_icon.svg | 6 + .../home-images/blue_handle_events_icon.svg | 4 - .../home-images/blue_http_first_icon.svg | 8 + .../blue_kubernetes_integrated_icon.svg | 3 + .../images/home-images/blue_plugable_icon.svg | 5 +- .../blue_progressive_rollouts_icon.svg | 7 - .../blue_simple_abstractions_icon.svg | 7 - docs/images/home-images/hero-bg.svg | 65 + docs/images/home-images/kelsey.png | Bin 0 -> 22002 bytes .../home-images/knative_flowchart_graphic.svg | 137 +-- .../knative_flowchart_graphic_mobile.svg | 77 -- docs/stylesheets/extra.css | 109 +- overrides/assets/stylesheets/home.css | 1084 ++++++++--------- overrides/home.html | 579 +++++---- overrides/partials/header.html | 153 +++ overrides/partials/tabs.html | 38 + 21 files changed, 1272 insertions(+), 1038 deletions(-) delete mode 100644 docs/images/home-images/blue_autoscaling_icon.svg create mode 100644 docs/images/home-images/blue_event_based_icon.svg create mode 100644 docs/images/home-images/blue_functions_icon.svg delete mode 100644 docs/images/home-images/blue_handle_events_icon.svg create mode 100644 docs/images/home-images/blue_http_first_icon.svg create mode 100644 docs/images/home-images/blue_kubernetes_integrated_icon.svg delete mode 100644 docs/images/home-images/blue_progressive_rollouts_icon.svg delete mode 100644 docs/images/home-images/blue_simple_abstractions_icon.svg create mode 100644 docs/images/home-images/hero-bg.svg create mode 100644 docs/images/home-images/kelsey.png delete mode 100644 docs/images/home-images/knative_flowchart_graphic_mobile.svg create mode 100644 overrides/partials/header.html create mode 100644 overrides/partials/tabs.html diff --git a/blog/config/nav.yml b/blog/config/nav.yml index e13251fac..11005bbbf 100644 --- a/blog/config/nav.yml +++ b/blog/config/nav.yml @@ -1,7 +1,6 @@ nav: - - Home: /docs/ - - Tutorial: /docs/getting-started/ - Concepts: /docs/concepts/ + - Tutorial: /docs/getting-started/ - Installing: /docs/install/ - Functions: /docs/functions/ - Serving: /docs/serving/ diff --git a/config/nav.yml b/config/nav.yml index 8ac04c875..223c46151 100644 --- a/config/nav.yml +++ b/config/nav.yml @@ -1,10 +1,6 @@ INHERIT: redirects.yml nav: -############################################################################### - # Home page -############################################################################### - - Home: index.md ############################################################################### # Concepts ############################################################################### diff --git a/docs/images/home-images/blue_autoscaling_icon.svg b/docs/images/home-images/blue_autoscaling_icon.svg deleted file mode 100644 index 4ea3b502d..000000000 --- a/docs/images/home-images/blue_autoscaling_icon.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/images/home-images/blue_event_based_icon.svg b/docs/images/home-images/blue_event_based_icon.svg new file mode 100644 index 000000000..b13ab7fe7 --- /dev/null +++ b/docs/images/home-images/blue_event_based_icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/images/home-images/blue_event_intergrations_icon.svg b/docs/images/home-images/blue_event_intergrations_icon.svg index 9b0a2f011..799f14c49 100644 --- a/docs/images/home-images/blue_event_intergrations_icon.svg +++ b/docs/images/home-images/blue_event_intergrations_icon.svg @@ -1,5 +1,3 @@ - - - - + + diff --git a/docs/images/home-images/blue_functions_icon.svg b/docs/images/home-images/blue_functions_icon.svg new file mode 100644 index 000000000..e5541e859 --- /dev/null +++ b/docs/images/home-images/blue_functions_icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/images/home-images/blue_handle_events_icon.svg b/docs/images/home-images/blue_handle_events_icon.svg deleted file mode 100644 index b1ab40b4a..000000000 --- a/docs/images/home-images/blue_handle_events_icon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/images/home-images/blue_http_first_icon.svg b/docs/images/home-images/blue_http_first_icon.svg new file mode 100644 index 000000000..48b39a50c --- /dev/null +++ b/docs/images/home-images/blue_http_first_icon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/images/home-images/blue_kubernetes_integrated_icon.svg b/docs/images/home-images/blue_kubernetes_integrated_icon.svg new file mode 100644 index 000000000..be8c9eab7 --- /dev/null +++ b/docs/images/home-images/blue_kubernetes_integrated_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/images/home-images/blue_plugable_icon.svg b/docs/images/home-images/blue_plugable_icon.svg index 3d05873ce..34c5cb482 100644 --- a/docs/images/home-images/blue_plugable_icon.svg +++ b/docs/images/home-images/blue_plugable_icon.svg @@ -1,4 +1,3 @@ - - - + + diff --git a/docs/images/home-images/blue_progressive_rollouts_icon.svg b/docs/images/home-images/blue_progressive_rollouts_icon.svg deleted file mode 100644 index 1c9f97959..000000000 --- a/docs/images/home-images/blue_progressive_rollouts_icon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/images/home-images/blue_simple_abstractions_icon.svg b/docs/images/home-images/blue_simple_abstractions_icon.svg deleted file mode 100644 index 8a15db4ea..000000000 --- a/docs/images/home-images/blue_simple_abstractions_icon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/images/home-images/hero-bg.svg b/docs/images/home-images/hero-bg.svg new file mode 100644 index 000000000..b946d1346 --- /dev/null +++ b/docs/images/home-images/hero-bg.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/home-images/kelsey.png b/docs/images/home-images/kelsey.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6ccf1377f74e9d38b2681395747ac092c4dd19 GIT binary patch literal 22002 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 V-bpjspcViC002ovPDHLkV1j=8yPW_4 literal 0 HcmV?d00001 diff --git a/docs/images/home-images/knative_flowchart_graphic.svg b/docs/images/home-images/knative_flowchart_graphic.svg index e51e5bc61..8c66a4041 100644 --- a/docs/images/home-images/knative_flowchart_graphic.svg +++ b/docs/images/home-images/knative_flowchart_graphic.svg @@ -1,80 +1,59 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/home-images/knative_flowchart_graphic_mobile.svg b/docs/images/home-images/knative_flowchart_graphic_mobile.svg deleted file mode 100644 index 178a0055c..000000000 --- a/docs/images/home-images/knative_flowchart_graphic_mobile.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index df29f63b0..9ab19494d 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -1,9 +1,81 @@ +@font-face { + font-family: 'Satoshi'; + font-style: normal; + font-weight: 400; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-Regular.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: italic; + font-weight: 400; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-Italic.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: normal; + font-weight: 300; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-Light.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: italic; + font-weight: 300; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-LightItalic.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: normal; + font-weight: 500; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-Medium.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: italic; + font-weight: 500; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-MediumItalic.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: normal; + font-weight: 700; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-Bold.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: italic; + font-weight: 700; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-BoldItalic.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: normal; + font-weight: 900; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-Black.woff') format('woff'); +} +@font-face { + font-family: 'Satoshi'; + font-style: italic; + font-weight: 900; + src: local('Satoshi'), url('https://fonts.cdnfonts.com/s/85546/Satoshi-BlackItalic.woff') format('woff'); +} + :root { --md-primary-fg-color: #f3f1f2; --md-primary-fg-color--dark: #0D4984; --md-primary-fg-color--light: #6593C8; + --md-primary-bg-color: #ffffff; --nav-item-color: #4d4d4d; --md-footer-bg-color: #081729; + --md-text-font: 'Satoshi'; +} + +header > nav > ul > li { + color: black; + font-weight: bold; +} + +.mr-30 { + margin-right: 30px; } .md-clipboard { @@ -108,37 +180,6 @@ a.md-header__button.md-logo img { font-weight: bold; } -.md-tabs__list li:nth-last-child(3) { - margin-left: auto; -} - -.md-tabs__list li:nth-last-child(1), -.md-tabs__list li:nth-last-child(2), -.md-tabs__list li:nth-last-child(3) { - background-color: var(--md-primary-fg-color--dark); - color: white; - padding: 0 2em; -} -.md-tabs__list li:nth-last-child(3){ -border-radius: 0.7rem 0 0 0 ; -} -.md-tabs__list li:nth-last-child(1){ - border-radius:0 0.7rem 0 0 ; - } - - -.md-tabs__list li:nth-last-child(1) a, -.md-tabs__list li:nth-last-child(2) a, -.md-tabs__list li:nth-last-child(3) a { - opacity: 1; -} - -.md-tabs__list li:nth-last-child(1) a:hover, -.md-tabs__list li:nth-last-child(2) a:hover, -.md-tabs__list li:nth-last-child(3) a:hover { - color: var(--md-accent-fg-color); -} - .md-nav__title .md-nav__button.md-logo img, .md-nav__title .md-nav__button.md-logo svg { width: auto; @@ -170,6 +211,11 @@ border-radius: 0.7rem 0 0 0 ; color: gray; } +#sub-nav li:nth-last-child(3), #sub-nav li:nth-last-child(2), #sub-nav li:nth-last-child(1) { + display: none; +} + + /* bit of a hack to stop the banner taking space when empty */ .md-banner .md-banner__inner { margin: 0 auto; @@ -182,6 +228,7 @@ border-radius: 0.7rem 0 0 0 ; .md-banner .versionwarning h1 { font-weight: bold; + font-size: 20px; } .md-banner .versionwarning p { diff --git a/overrides/assets/stylesheets/home.css b/overrides/assets/stylesheets/home.css index 30947655d..4a2f4cdcc 100644 --- a/overrides/assets/stylesheets/home.css +++ b/overrides/assets/stylesheets/home.css @@ -1,63 +1,51 @@ -.md-main__inner { - margin: 0; +/* General styles */ +body { + color: white; + background: var(--md-primary-fg-color--dark); +} + +/* Utilities */ +.mr-30 { + margin-right: 30px; +} + +.font-bold { + font-weight: bold; +} + +.normal-text { + font-size: 18px; +} + +.italize { + font-style: italic; +} + +.card { + background-color: transparent; + border: 1px solid #dadce0; + border-radius: 0.7rem; + padding: 0px 20px; +} + +.feature { + width: 400px; + min-width: 40%; max-width: 100%; - overflow: hidden; - position: relative; + height: 200px; } -.md-main__inner .md-content__inner, -.md-sidebar--primary:not([hidden])~.md-content>.md-content__inner { - margin: 0; - padding: 0; +.quote { + font-size: 1.5rem; + color: #2270ab; } -.md-main__inner .md-content__inner:before { - display: none; -} - -@media screen and (min-width: 60em) { - .md-sidebar--secondary { - display: none; - } -} - -@media screen and (min-width: 76.25em) { - .md-sidebar--primary { - display: none; - } - - [dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner { - margin-left: 0; - } -} - -@keyframes continuousgradient { - 0% { - background-position: 0% 50%; - } - - 50% { - background-position: 100% 50%; - } - - 100% { - background-position: 0% 50%; - } -} - -/* containers specific css */ -.headline-section { - text-align: center; -} - -.why-serverless-container, .need-to-know-more-container, -.knative-components-container, .trying-it-all-container, -.whats-next-container, .whats-next-container, -.case-studies-container, .cncf-notice-container { - text-align: center; - padding: 4em 3em; +.quote-author { + font-size: 0.8rem; + letter-spacing: 0.5px; } +/* Homepage-specific styles */ .home-page .md-typeset { font-size: 1rem; line-height: 1.2; @@ -68,7 +56,32 @@ max-width: initial; } -/* home headline section css */ +/* Hero */ +.hero { + background-image: url("../../images/home-images/hero-bg.svg"); + background-repeat: no-repeat; + background-position: bottom; + background-size: cover; + background-color: #fff; + height: 25rem; + margin-top: -50px; +} + +.headline-section { + text-align: center; +} + +.main-headline { + padding-top: 2rem; + color: black !important; +} + +.call-to-action { + display: inline-flex; + margin-top: 2rem; + gap: 5px; +} + section.home-container { min-height: 435px; justify-content: center; @@ -80,15 +93,10 @@ section.home-container { padding-top: 0; } -.home-container>.md-typeset { +.home-container > .md-typeset { flex-grow: 2; } -body { - color: white; - background: var(--md-primary-fg-color--dark); -} - .home-container .md-button, .home-container .md-button--primary { color: white; @@ -96,10 +104,15 @@ body { font-size: large; padding: 0.525em 1em; min-width: fit-content; - border-radius:8px; + border-radius: 8px; margin-left: 0.5rem; } +.md-button--secondary { + background-color: var(--md-primary-fg-color--dark); + border: none !important; +} + .home-container .md-button, .need-to-know-more-container .md-button { background-color: var(--md-primary-fg-color--light); @@ -114,9 +127,20 @@ body { border-radius: 8px; } -h2.secondary-headline, h3.trusted-by { - color: black; +h3.trusted-by { + color: white; font-weight: 700; + font-size: 1.3rem; + text-align: center; +} + +h2.secondary-headline { + color: var(--nav-item-color); + font-weight: 500; + font-size: 1rem; + max-width: 70%; + margin: 0 auto; + text-align: center; } .home-container h1 { @@ -127,7 +151,6 @@ h2.secondary-headline, h3.trusted-by { .scroller { max-width: 60vw; - } .scroller__inner { @@ -171,6 +194,10 @@ h2.secondary-headline, h3.trusted-by { } } +.trusted-by-container { + margin-bottom: 40px; +} + .trusted-by-container #usedby { display: flex; justify-content: center; @@ -190,126 +217,80 @@ h2.secondary-headline, h3.trusted-by { max-height: 48; } - .home-container h2 { margin-top: 10px; color: black; font-weight: bold; } -@media screen and (max-width: 768px) { - .home-container { - padding: 1rem; - } - - .home-container .md-button, - .home-container .md-button--primary { - width: 70%; - font-size: medium; - margin: 0.5em 0; - } - - .scroller { - max-width: 90vw; - } +/* Site page styles */ +.md-main__inner { + margin: 0; + max-width: 100%; + overflow: hidden; + position: relative; } -@media screen and (max-width: 480px) { - .home-container h1 { - font-size: 1.5em; - padding: 0.5rem; - } - - .home-container .md-button, - .home-container .md-button--primary { - font-size: small; - } - - .scroller { - max-width: 100vw; - } +.md-main__inner .md-content__inner, +.md-sidebar--primary:not([hidden]) ~ .md-content > .md-content__inner { + margin: 0; + padding: 0; } +.md-main__inner .md-content__inner:before { + display: none; +} + +/* containers specific css */ +.need-to-know-more-container, +.trying-it-all-container, +.whats-next-container, +.whats-next-container, +.case-studies-container, +.cncf-notice-container { + text-align: center; + padding: 4em 3em; +} /* need to know more section css */ -.need-to-know-more-container, .knative-components-container, +.need-to-know-more-container, +.knative-components-container, .whats-next-container { - background-color: var(--md-primary-fg-color--dark); - padding: 2rem 1rem; + background-color: white; + color: var(--nav-item-color); text-align: center; } -.need-to-know-more-container h1, .whats-next-container h1 { - color: white; +.need-to-know-more-container { + padding: 5em 1em 0em 1em; +} + +.need-to-know-more-container h1, +.whats-next-container h1 { + color: var(--md-primary-fg-color--dark); font-size: 2em; } -.need-to-know-more-container .md-button { - margin: 1em 0; - color: white; - border-radius: 0.5rem; - background-color: var(--md-primary-fg-color--light); - border: none; - width: 28%; - font-size: large; - padding: 0.525em 1em; - min-width: fit-content; -} - -@media screen and (max-width: 768px) { - .need-to-know-more-container { - padding: 1.5em 0.5em; - } - - .need-to-know-more-container h1 { - font-size: 1.5em; - } - - .need-to-know-more-container .md-button { - width: 70%; - font-size: large; - } - - .normal-text { - font-size: 1em; - line-height: 1.5em; - } - - .br{ - display: none; - } - -} - -@media screen and (max-width: 480px) { - .need-to-know-more-container { - padding: 1em 0.5em; - } - - .need-to-know-more-container h1 { - font-size: 1.2em; - } - - .need-to-know-more-container .md-button { - font-size: medium; - padding: 4px 1.5em; - } - - .normal-text { - font-size: 0.9em; - line-height: 1.4em; - } -} - /* why serverless container css */ -.why-serverless-container, .trying-it-all-container { - background-color: white; - color: var(--md-primary-fg-color--light); - padding: 2em 1em; - text-align: center; +.serverless-outer { + background-color: #fff; } -.why-serverless-container h1, .trying-it-all-container h1, +.why-serverless-container { + display: flex; + justify-content: space-between; +} + +.why-serverless-container, +.trying-it-all-container { + margin-top: -2px; + background-color: white; + color: var(--nav-item-color); + padding: 8em 1em; +} + +.why-serverless-container h1, +.trying-it-all-container h1, .case-studies-container h1 { color: var(--md-primary-fg-color--dark); font-size: 2em; @@ -332,6 +313,19 @@ h2.secondary-headline, h3.trusted-by { font-size: 1rem; } +.serverless-content-block { + flex: 1; + justify-content: space-between; +} + +.serverless-feature-block { + flex: 2; + display: flex; + flex-wrap: wrap; + justify-content: space-around; + row-gap: 40px; +} + .img-table { margin: 1rem auto -1rem; } @@ -354,9 +348,9 @@ h2.secondary-headline, h3.trusted-by { } .img-wrapper { - position: relative; - width: 120px; - height: 120px; + display: flex; + justify-content: end; + margin-top: 15px; } .reason-img img { @@ -373,85 +367,16 @@ h2.secondary-headline, h3.trusted-by { transform: scale(1.15); } -.reason-text h2{ - font-size:24px; - color:black; - margin:4px; +.reason-text h2 { + font-size: 24px; + color: black; + margin: 4px 0px; font-weight: bold; } -.normal-text{ - font-size: 18px; -} - -@media screen and (max-width: 768px) { - .why-serverless-container h1 { - font-size: 1.5em; - } - - .why-serverless-container .normal-text-head { - font-size: 0.9rem; - margin-bottom: 4rem; - } - - .img-row { - flex-direction: row; - flex-wrap: wrap; - } - - .img-col { - flex: 1 1 45%; - max-width: 45%; - margin:0; - } - - .img-wrapper { - width: 100px; - height: 100px; - } -} - -@media screen and (max-width: 480px) { - .why-serverless-container h1 { - font-size: 1.2em; - } - - .why-serverless-container .normal-text-head { - font-size: 0.8rem; - } - - .img-row { - flex-direction: column; - } - - .img-col { - flex: 1 1 100%; - max-width: 100%; - } - - .img-wrapper { - width: 80px; - height: 80px; - } -} - /* knative components container css */ .knative-components-container h1 { - color: white; -} - -.knative-components-container .text-table .normal-text { - width: 30%; - text-align: start; - margin-left: 1%; - font-size: .8rem; - margin-top: -1rem; - text-align: center; -} - -.knative-components-container .text-table .normal-text:last-child { - padding-left: 2em; - margin-left: 32%; + color: var(--md-primary-fg-color--dark); } .knative-components-container .components-content .components-img { @@ -459,169 +384,58 @@ h2.secondary-headline, h3.trusted-by { padding: 2em; } -.text-table { - display: flex; - max-width: 80%; - margin: auto; - padding: 0 2.5em; - align-items: center; - justify-content: center; -} - -.knative-components-container-mobile , .text-upper-right , .text-lower-left , .svg-diagram{ - display: none; -} - -@media only screen and (max-width: 425px){ - - .knative-components-container-mobile , .text-upper-right , .text-lower-left , .svg-diagram{ - display: block; - } - - .text-table { - display: none; - } - - .components-img { - display: none; - } - -.knative-components-container-mobile { - position: relative; - width: 80%; - max-width: 1200px; - padding: 20px; -} - -.text-upper-right { - position: absolute; - top: 20px; - right: -75px; - width: 180px; - font-size: 12px; -} - -.text-lower-left { - position: absolute; - bottom: 50px; - width: 165px; - left: -10px; - font-size: 12px; -} - -.svg-diagram img { - width: 120%; - height: auto; - display: flex; - justify-content: center; - align-items: center; -} -} - -@media only screen and (max-width: 375px){ - -.text-upper-right { - position: absolute; - top: 20px; - right: -75px; - width: 165px; - font-size: 10px; -} - -.text-lower-left { - position: absolute; - bottom: 50px; - width: 150px; - left: -10px; - font-size: 10px; -} - -.svg-diagram img { - width: 120%; - height: auto; - display: flex; - justify-content: center; - align-items: center; -} -} -/* trying it all container css */ -.trying-it-all-container .reason-img img{ -position: relative; -} - -.trying-it-all-container .reason-img { - margin: auto; - height: 130px; -} - -.trying-it-all-container .md-typeset h2 { - color: black; - line-height: 1; - margin-bottom: 1rem; -} - -.trying-it-all-container .img-col { - place-self: flex-start; -} - -.trying-it-all-container .img-col:first-child img { - height: 106px; - margin-top: 10px; -} - -.trying-it-all-container .img-col img { - height: 130px; - width: 100%; -} - -.trying-it-all-container .img-col:last-child img { - height: 94px; - margin-top: 20px; -} - -.trying-it-all-container .md-typeset .md-button.call-to-action { - background-color: var(--md-primary-fg-color--dark); - color: white; - margin-top: 3rem; - border-radius: 8px; - width: 28%; - font-size: large; - padding: 0.525em 1em; - min-width: fit-content; -} - -.trying-it-all-container .md-button.call-to-action:hover { - background-color: var(--md-accent-fg-color); -} - -@media screen and (max-width: 768px){ - .trying-it-all-container .md-typeset .md-button.call-to-action{ - width:70%; - } +div.components-content { + border: 1px solid #dadce0; + border-radius: 0.7rem; + padding: 0px 20px; + margin: 0 50px; } /* case studies container css */ -.case-studies-container { - text-align: center; - justify-content: center; - color: black; +.kelsey-testimonial { display: flex; - background-color: var(--md-primary-fg-color); - padding: 1rem; - cursor: pointer; - flex-wrap: wrap; - padding-bottom: 0; + justify-content: center; + align-items: center; + padding: 3rem 1rem; + margin-top: 2rem; + margin-right: 50px; + margin-left: 50px; + gap: 30px; + text-align: start; + color: var(--md-primary-fg-color--dark); + font-weight: 600; + line-height: 1.2; + font-size: 0.95rem; } -.md-typeset>h1:first-of-type { - margin:0; +.kelsey-testimonial > img { + box-shadow: inset 0 0 0 1px hsla(0, 0%, 0%, .1); + border-radius: 50%; +} + +.md-typeset > h1:first-of-type { + margin: 0; +} + +.case-studies-container { + text-align: center; + color: var(--nav-item-color); + background-color: white; + padding: 1rem; + padding-bottom: 0; + padding-top: 4rem; +} + +.case-studies-container > a:first-of-type { + text-decoration: none; + cursor: pointer; } .case-studies-container .cases-table { display: flex; justify-content: center; max-width: 100%; - align-items: stretch; + align-items: stretch; margin: 1rem; margin-top: 0; align-items: center; @@ -630,28 +444,25 @@ position: relative; .case-studies-container .cases-table a { text-decoration: none; cursor: pointer; - flex: 1 1 25vw; - min-width: 300px; + flex: 1 1 25vw; + min-width: 300px; max-width: 25vw; margin: 1rem; } .case-studies-container .cases-table .col { - background-color: white; padding: 1.5rem; margin: 1rem 0.5rem; - border-radius: 0.7rem; display: flex; flex-direction: column; justify-content: space-between; box-sizing: border-box; transition: border 0.3s ease-in-out; - border: 2px solid transparent; - height: 100%; + height: 100%; } -.case-studies-container .cases-table .col:hover { - border: 2px solid gray; +.case-studies-container .cases-table .col:hover, .kelsey-testimonial:hover { + border: 1.2px solid gray; } .case-studies-container .logo { @@ -677,142 +488,19 @@ position: relative; color: var(--md-primary-fg-color--dark); font-weight: 600; line-height: 1.2; - font-size: .95rem; + font-size: 0.95rem; } -.case-studies-container hr { - border-bottom: 2px solid black; - display: flow-root; - margin: .4em 5em -4px 2em; +#pnc-testimonial { + padding: 1rem 1.5rem; } -/* Responsive Styles */ - -@media (max-width: 1370px) { - .case-studies-container .cases-table a { - flex: 1 1 30vw; - min-width: 300px; - max-width: 30vw; - } +.md-typeset .md-button.black { + color: black; } -@media (max-width: 1200px) { - .case-studies-container .cases-table{ - flex-wrap: wrap; - } - .case-studies-container .cases-table a { - flex: 1 1 40vw; - min-width: 300px; - max-width: 40vw; - } -} - -@media (max-width: 992px) { - .case-studies-container .cases-table a { - flex: 1 1 50vw; - min-width: 300px; - max-width: 50vw; - } -} - -@media (max-width: 800px) { - .case-studies-container .cases-table { - justify-content: center; - align-items: center; - max-width: 100%; - } - - .case-studies-container .cases-table .col{ - max-width: 50%; - } - - .case-studies-container .cases-table a { - display: flex; - flex: 1 1 90vw; - min-width: 350px; - max-width: 90vw; - justify-content: center; - margin:0.5rem auto; - } -} - -@media (max-width: 600px) { - .case-studies-container .cases-table a { - flex: 1 1 90vw; - min-width: 650px; - max-width: 90vw; - } - - .case-studies-container .logo { - padding: 0 1em; - padding-top: 1rem; - } - - .case-studies-container hr { - margin: .4em 2em -4px 1em; - } - - .case-studies-container .normal-text { - padding: 0 1em; - } -} - -@media (max-width: 375px){ - .case-studies-container .cases-table a { - flex: 1 1 90vw; - min-width: 350px; - max-width: 90vw; - } - - .case-studies-container .cases-table .col{ - max-width: 90%; - } -} - -/* whats next container css */ -.whats-next-container .component-flex { - display: flex; - gap: 2em; - padding-top: 1em; -} - -.whats-next-container h1 { - margin: 0; -} - -.whats-next-container h2 { +.md-typeset .md-button.black:hover { color: white; - font-size: 1.3rem; - margin: .6em 0 0; - font-weight: bold; -} - -.whats-next-container .normal-text { - font-weight: 500; - font-size: .8em; - padding-top: 0; - color: white; -} - -.whats-next-container .twemoji { - color: white; - justify-content: center; -} - -.whats-next-container .twemoji, -.whats-next-container .twemoji svg { - height: 3.5em; - width: 3.5em; -} - -.whats-next-container .twemoji svg:hover { - color: #7cc57c; -} - -.whats-next-logo{ - display: flex; - justify-content: center; - gap: 50px; } .md-typeset .md-button.white { @@ -836,59 +524,349 @@ position: relative; margin: 1rem; } -@media only screen and (max-width: 800px) { - .component-flex, .case-studies-container .cases-table { +/* No next/prev links on home page so make sure next/prev area of footer collapses nicely */ +footer nav.md-footer__inner { + padding: 0; +} + +.md-footer-meta { + padding: 1em 0; +} + +.md-footer-copyright { + margin-right: 18px; +} + +/* Media queries (Responsive Styles) */ + +/* hero */ +@media screen and (max-width: 334px) { + .hero { + height: 30rem; + } +} + +@media screen and (max-width: 254px) { + .hero { + height: 35rem; + } +} + +/* sidebar styles */ +@media screen and (min-width: 60em) { + .md-sidebar--secondary { + display: none; + } +} + +@media screen and (min-width: 76.25em) { + .md-sidebar--primary { + display: none; + } + + [dir="ltr"] + .md-sidebar--primary:not([hidden]) + ~ .md-content + > .md-content__inner { + margin-left: 0; + } +} + +@keyframes continuousgradient { + 0% { + background-position: 0% 50%; + } + + 50% { + background-position: 100% 50%; + } + + 100% { + background-position: 0% 50%; + } +} + +/* home headline section css */ +@media screen and (max-width: 768px) { + .home-container { + padding: 1rem; + } + + .home-container .md-button, + .home-container .md-button--primary { + width: 70%; + font-size: medium; + margin: 0.5em 0; + } + + .scroller { + max-width: 90vw; + } +} + +@media screen and (max-width: 480px) { + .main-headline { + font-size: 1.5rem !important; + } + + .h2.secondary-headline { + font-size: 0.7rem; + } + + .call-to-action { + flex-direction: column-reverse; + margin-top: 1rem; + } + + .home-container h1 { + font-size: 1.5em; + padding: 0.5rem; + } + + .home-container .md-button, + .home-container .md-button--primary { + font-size: small; + } + + .scroller { + max-width: 100vw; + } +} + +@media screen and (max-width: 768px) { + .need-to-know-more-container { + padding: 1.5em 0.5em; + } + + .need-to-know-more-container h1 { + font-size: 1.5em; + } + + .need-to-know-more-container .md-button { + width: 70%; + font-size: large; + } + + .normal-text { + font-size: 1em; + line-height: 1.5em; + } + + .br { + display: none; + } +} + +@media screen and (max-width: 480px) { + .need-to-know-more-container { + padding: 1em 0.5em; + } + + .need-to-know-more-container h1 { + font-size: 1.2em; + } + + .need-to-know-more-container .md-button { + font-size: medium; + padding: 4px 1.5em; + } + + .normal-text { + font-size: 0.9em; + line-height: 1.4em; + } +} + +@media screen and (max-width: 768px) { + .serverless-content-block { + text-align: center; + } + + .why-serverless-container { + flex-direction: column; + } + + .why-serverless-container h1 { + font-size: 1.5em; + } + + .why-serverless-container .normal-text-head { + font-size: 0.9rem; + margin-bottom: 4rem; + } + + .img-row { + flex-direction: row; flex-wrap: wrap; } - .knative-components-container .text-table .normal-text { - width: 80%; - text-align: center; + .img-col { + flex: 1 1 45%; + max-width: 45%; + margin: 0; } - .knative-components-container .text-table .normal-text:first-child { - margin-left: -15%; + .img-wrapper { + width: 100px; + height: 100px; } +} - .knative-components-container { +@media screen and (max-width: 480px) { + .why-serverless-container { + flex-direction: column; padding: 3em 1em; } + .why-serverless-container h1 { + font-size: 1.2em; + } + + .why-serverless-container .normal-text-head { + font-size: 0.8rem; + } + + .img-row { + flex-direction: column; + } + + .img-col { + flex: 1 1 100%; + max-width: 100%; + } + + .img-wrapper { + width: 60px; + height: 60px; + } +} + +/* case studies container css */ +@media (max-width: 1370px) { + .case-studies-container .cases-table a { + flex: 1 1 30vw; + min-width: 300px; + max-width: 30vw; + } +} + +@media (max-width: 1200px) { + .case-studies-container .cases-table { + flex-wrap: wrap; + } + .case-studies-container .cases-table a { + flex: 1 1 40vw; + min-width: 300px; + max-width: 40vw; + } +} + +@media (max-width: 992px) { + .case-studies-container .cases-table a { + flex: 1 1 50vw; + min-width: 300px; + max-width: 50vw; + } +} + +@media (max-width: 800px) { + .case-studies-container .cases-table { + justify-content: center; + align-items: center; + max-width: 100%; + } + + .case-studies-container .cases-table .col { + max-width: 50%; + } + + .case-studies-container .cases-table a { + display: flex; + flex: 1 1 90vw; + min-width: 350px; + max-width: 90vw; + justify-content: center; + margin: 0.5rem auto; + } +} + +@media (max-width: 600px) { + .case-studies-container { + padding-top: 2.5rem; + } + + .case-studies-container .cases-table a { + flex: 1 1 90vw; + min-width: 650px; + max-width: 90vw; + } + + .case-studies-container .logo { + padding: 0 1em; + padding-top: 1rem; + } + + .case-studies-container hr { + margin: 0.4em 2em -4px 1em; + } + + .case-studies-container .normal-text { + padding: 0 1em; + } + + .kelsey-testimonial { + flex-direction: column; + margin-left: 0px; + margin-right: 0px; + text-align: center; + } +} + +@media (max-width: 375px) { + .case-studies-container .cases-table a { + flex: 1 1 90vw; + min-width: 350px; + max-width: 90vw; + } + + .case-studies-container .cases-table .col { + max-width: 90%; + } +} + +@media only screen and (max-width: 800px) { + .knative-components-container { + padding: 2em 1em; + } + .knative-components-container .components-content .components-img { max-width: 100%; } } -/* No next/prev links on home page so make sure next/prev area of footer collapses nicely */ -footer nav.md-footer__inner { - padding: 0; +@media (max-width: 600px) { + .knative-components-container .components-content .components-img { + padding: 10px 5px; + } } -.md-footer-meta{ - padding: 1em 0; -} - -.md-footer-copyright{ - margin-right: 18px; -} - -@media (max-width: 1024px){ +@media (max-width: 1024px) { .md-header__topic { margin: 0; } - .md-footer-copyright{ + .md-footer-copyright { margin: auto; text-align: center; } - .md-social{ + .md-social { margin: auto; } } @media (max-width: 861px) { - .md-footer-meta{ + .md-footer-meta { flex-direction: column; } @@ -917,7 +895,7 @@ footer nav.md-footer__inner { flex-wrap: wrap; } - .md-footer-copyright a{ + .md-footer-copyright a { margin: 8px; } @@ -931,7 +909,7 @@ footer nav.md-footer__inner { margin-top: 1rem; } - .pipe{ - display:none; + .pipe { + display: none; } } diff --git a/overrides/home.html b/overrides/home.html index b039b238d..4e51a362f 100644 --- a/overrides/home.html +++ b/overrides/home.html @@ -2,332 +2,395 @@
-
-
-
+
+
+

- Knative is an Open-Source Enterprise-level
- solution to build Serverless and Event Driven Applications + Providing the building blocks for
+ creating modern, cloud-based applications

-

- Try the tutorial - Install Knative on your cluster +

+ The easiest way to build and run serverless workloads on Kubernetes. + Built by the community, for modern cloud-native teams +

+

+ Try the tutorial + Install Knative on your cluster

-
-

Trusted by

-
-
- -
-
-
-
- -
-
-
+
+

Trusted by

+
+
+
+
+
+
+
-

Need to know more?

+

What is Knative?

- Learn about how Knative works with Kubernetes and the underlying ideas behind containers
+ Learn about how Knative works with Kubernetes and the underlying ideas + behind containers
and serverless infrastructure.

- - Explore Knative - +
- -
-
-

Why serverless containers?

-

- Serverless refers to running back-end programs and processes in the cloud. Serverless works on an as-used basis, - meaning that companies only pay for what they use. Knative is a platform-agnostic - solution for running serverless deployments. -

-
-
-
-
-
- -
-
-
-

Simpler Abstractions

-

- Simplify your YAML with our custom CRDs -

-
+
+
+
+

Why serverless containers?

+

+ Express scalable application architecture without distractions. + Serverless gives you a vocabulary for expressing web and event-based + applications without getting mired in the details of scaling and + infrastructure libraries. Behind the scenes, Knative optimizes your + deployment to match demand. +

+
+
+
+
+
-
-
-
- -
-
-
-

Autoscaling

-

- Scale down to zero and up from zero -

-
-
-
-
-
- -
-
-
-

Progressive Rollouts

-

- Choose your rollout strategy depending on your needs -

-
+
+

Functions

+

+ Application template patterns you can version and update +

-
-
-
-
- -
-
-
-

Event Integrations

-

- Handle events from many sources -

-
+
+
+
-
-
-
- -
-
-
-

Handle Events

-

- Trigger handlers from the event broker -

-
+
+

HTTP-first

+

Serve and scale HTTP/2, gRPC, and MCP

-
-
-
- -
-
-
-

Plugable

-

- Kubernetes native to be integrated and extended -

-
+
+
+
+ +
+
+

Event-based

+

+ Route and handle asynchronous events just like HTTP +

+
+
+
+
+ +
+
+

Event Integrations

+

+ Extract events from existing services or define your own +

+
+
+
+
+ +
+
+

Kubernetes-integrated

+

Trigger handlers from the event broker

+
+
+
+
+ +
+
+

Plugable

+

+ Kubernetes native to be integrated and extended +

- +

Knative Components

- Knative has two main components that empower teams working with Kubernetes. Serving and
+ Knative has two main components that empower teams working with + Kubernetes. Serving and
Eventing work together to automate and manage tasks and applications.

- -
-

- Run serverless containers in Kubernetes with ease. Knative takes care of the details of networking, - autoscaling (even to zero), and revision tracking. Teams can focus on core logic using any programming - language. -

-

- Universal subscription, delivery and management of events. Build modern apps by attaching compute to a data - stream with declarative event connectivity and developer friendly object models. -

-
+
-
-
-

Run serverless containers in Kubernetes with ease. Knative takes care of the details of networking, autoscaling (even to zero), and revision tracking.

-
-
- -
-
-

Universal subscription, delivery and management of events. Build modern apps by attaching compute to a data stream with declarative event connectivity and developer-friendly object models.

-
-
-
- -
-
-

Trying it all together

-
-
-
-
- -
-
-

Developers focus on code

-

- From container to URL
- with less YAML config -

-
-
- -
-
- -
-
-

Scale up and down

-

- Scale down to zero
- based on traffic patterns -

-
-
- -
-
- -
-
-

Cloud agnostic

-

- Control traffic shifting
- for smoother rollouts -

-
-
-
-
- - Deploy Knative Today - -
-
-

Knative is a Cloud Native Computing Foundation incubation project

- +

+ Knative is a + Cloud Native Computing Foundation + incubation project +

+
-{% endblock %} - -{% block scripts %} -{{ super() }} +{% endblock %} {% block scripts %} {{ super() }}