From 7a57219b9131a350a191aab8b8fafe04225fcecf Mon Sep 17 00:00:00 2001 From: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com> Date: Thu, 30 Nov 2023 11:28:04 -0800 Subject: [PATCH] add CNCF info & update homepage (#3622) * add CNCF info & update homepage Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com> * improve styling of homepage Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com> * use rlang logo instead of rstudio * update homepage content * fix typo * prevent homepage styles applying to docs --------- Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com> --- assets/scss/_styles_project.scss | 180 ++++++++++++++++++ assets/scss/_variables_project.scss | 130 +------------ config.toml | 1 + content/en/_index.html | 155 +++++++-------- content/en/docs/images/logos/cncf.svg | 1 + content/en/docs/images/logos/dashboard.png | Bin 0 -> 28599 bytes .../images/logos/jupyter-vscode-rlang.png | Bin 0 -> 88997 bytes content/en/docs/images/logos/katib.png | Bin 0 -> 52544 bytes content/en/docs/images/logos/kserve.png | Bin 0 -> 71603 bytes content/en/docs/images/logos/kubeflow.png | Bin 0 -> 54864 bytes .../docs/images/logos/tensorflow-pytorch.png | Bin 0 -> 53573 bytes layouts/partials/footer.html | 26 ++- 12 files changed, 273 insertions(+), 220 deletions(-) create mode 100644 content/en/docs/images/logos/cncf.svg create mode 100644 content/en/docs/images/logos/dashboard.png create mode 100644 content/en/docs/images/logos/jupyter-vscode-rlang.png create mode 100644 content/en/docs/images/logos/katib.png create mode 100644 content/en/docs/images/logos/kserve.png create mode 100644 content/en/docs/images/logos/kubeflow.png create mode 100644 content/en/docs/images/logos/tensorflow-pytorch.png diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss index a6cc8461ee..edcb68f258 100644 --- a/assets/scss/_styles_project.scss +++ b/assets/scss/_styles_project.scss @@ -37,6 +37,15 @@ // -------------------------------------------------- footer { min-height: auto; + + p { + margin-bottom: 0.4rem; + line-height: 1.0rem; + } + + small { + font-size: 0.7rem; + } } // -------------------------------------------------- @@ -104,6 +113,177 @@ footer { } } +// -------------------------------------------------- +// Home page +// -------------------------------------------------- +.td-home { + + .card-img-top { + object-fit: scale-down; + } + + .text-white { + font-weight: 400; + } + + .bg-primary-dark { + background-color: $dark; + + a { + border-bottom: 0.1em dotted paleturquoise; + + color: paleturquoise !important; + font-weight: 600; + padding: 0 0.2em 0.05em 0.2em; + text-decoration: none; + + &:hover { + border-bottom: 1px dotted #fff; + + color: #fff !important; + } + } + } + + .border-primary-dark { + border-color: $info !important; + } + + .section-head { + color: $primary; + font-weight: bold; + padding: 0 0 1.9rem 0; + } + + .image { + display: block; + } + + .image img { + display: block; + width: 100%; + height: auto; + } + + .image.left, .image.right { + max-width: 45%; + } + + .image.left::after, .image.right::after { + clear: both; + content: ""; + display: block; + } + + .image.left { + float: left; + margin: 0 1.5em 1.5em 0; + } + + .image.right { + float: right; + margin: 0 0 1.5em 1.5em; + } + + #overview, .components, #cncf, #community { + padding: 4rem 0 4rem 0 !important; + } + + #overview p, #community p { + font-size: 1.125em; + } + + #overview { + border-bottom: 0.1rem solid #b6d0ff; + text-align: center; + } + + #community { + border-top: 0.1rem solid #b6d0ff; + border-bottom: 0.1rem solid #b6d0ff; + text-align: center; + } + + #cncf { + margin-top: 1.5rem; + margin-bottom: 1.5rem; + text-align: center; + + .cncf-title { + color: #6b7281; + font-weight: bold; + padding-top: 1.6rem; + } + } + + #pageContent .lead { + margin: 0 1.5em 3em 1.5em; + } + + #pageContent .lead > .image { + padding: 0 1.5em; + max-width: 60%; + margin-bottom: 1.5em; + } + + #pageContent .lead > .text p { + font-size: 1em; + } + + @media screen and (min-width: 480px) { + #overview, #community { + font-size: 1.125em; + } + #pageContent .lead > .image { + max-width: 35%; + margin-bottom: 3em; + } + #pageContent .lead > .text p { + font-size: 1em; + } + } + + @media screen and (min-width: 769px) { + #pageContent .lead { + margin-top: 1em; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-pack: justify; + justify-content: space-between; + -ms-flex-align: stretch; + align-items: stretch; + } + #pageContent .lead > * { + -ms-flex: 0 1 auto; + flex: 0 1 auto; + } + #pageContent .lead > .image { + display: block; + margin: 0 auto; + max-width: 100%; + } + #pageContent .lead > .image > img { + max-width: 80%; + margin: 0 auto; + } + #pageContent .lead > .text { + -ms-flex-preferred-size: 70%; + flex-basis: 70%; + } + #pageContent .lead:nth-child(2n+0) > .image { + -ms-flex-order: 2; + order: 2; + } + #pageContent .lead:nth-child(2n+0) > .text { + -ms-flex-order: 1; + order: 1; + } + } +} // -------------------------------------------------- // 404 page diff --git a/assets/scss/_variables_project.scss b/assets/scss/_variables_project.scss index f9614eb5c1..2fb9ccbc17 100644 --- a/assets/scss/_variables_project.scss +++ b/assets/scss/_variables_project.scss @@ -20,132 +20,4 @@ $navbar-dark-hover-color: rgba($white, 0.75); $navbar-dark-active-color: $navbar-dark-color; // Fonts -$google_font_family: "Open+Sans:300,300i,400,400i,600,600i,700,700i&display=swap" !default; - -// Front page styling -.card-img-top { - object-fit: scale-down; -} - -.text-white { - font-weight: 400; -} - -.bg-primary-dark { - background-color: $dark; - - a { - border-bottom: 1px dotted paleturquoise; - - color: paleturquoise !important; - font-weight: 600; - padding: 0 2px 1px 2px; - text-decoration: none; - - &:hover { - border-bottom: 1px dotted #fff; - - color: #fff !important; - } - } -} - -.border-primary-dark { - border-color: $info !important; -} - -.section-head { - font-size: 1.25em; - color: $primary; - font-weight: bold; - padding: 0 0 1em 0; -} - -.contain { - margin: 0 auto; - max-width: 1200px; } - -.image { - display: block; } - .image img { - display: block; - width: 100%; - height: auto; } - .image.left, .image.right { - max-width: 45%; } - .image.left::after, .image.right::after { - clear: both; - content: ""; - display: block; } - .image.left { - float: left; - margin: 0 1.5em 1.5em 0; } - .image.right { - float: right; - margin: 0 0 1.5em 1.5em; } - -#overview, #community { - padding: 6em 1.5em 3em 1.5em; - text-align: center; - margin: 0; } - #overview p, #community p { - font-size: 1.125em;} - -#overview { - border-bottom: 2px solid #b6d0ff; -} - -#community { - border-top: 2px solid #b6d0ff; -} - -#pageContent .lead { - margin: 0 1.5em 3em 1.5em;} - #pageContent .lead > .image { - padding: 0 1.5em; - max-width: 60%; - margin-bottom: 1.5em; } - #pageContent .lead > .text p { - font-size: 1em; } - -@media screen and (min-width: 480px) { - #overview, #community { - font-size: 1.125em; } - #pageContent .lead > .image { - max-width: 35%; - margin-bottom: 3em; } - #pageContent .lead > .text p { - font-size: 1em; } } - -@media screen and (min-width: 769px) { - #pageContent .lead { - margin-top: 1em; - display: -ms-flexbox; - display: flex; - -ms-flex-direction: row; - flex-direction: row; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -ms-flex-pack: justify; - justify-content: space-between; - -ms-flex-align: stretch; - align-items: stretch; } - #pageContent .lead > * { - -ms-flex: 0 1 auto; - flex: 0 1 auto; } - #pageContent .lead > .image { - display: block; - margin: 0 auto; - max-width: 100%; } - #pageContent .lead > .image > img { - max-width: 80%; - margin: 0 auto; } - #pageContent .lead > .text { - -ms-flex-preferred-size: 70%; - flex-basis: 70%; } - #pageContent .lead:nth-child(2n+0) > .image { - -ms-flex-order: 2; - order: 2; } - #pageContent .lead:nth-child(2n+0) > .text { - -ms-flex-order: 1; - order: 1; } } +$google_font_family: "Open+Sans:300,300i,400,400i,600,600i,700,700i&display=swap" !default; \ No newline at end of file diff --git a/config.toml b/config.toml index db25bd29df..41b6aab32e 100644 --- a/config.toml +++ b/config.toml @@ -108,6 +108,7 @@ enable = true copyright = "The Kubeflow Authors." privacy_policy = "https://policies.google.com/privacy" + trademark = "https://www.linuxfoundation.org/trademark-usage/" # Google Custom Search Engine ID. gcs_engine_id = "007239566369470735695:624rglujm-w" diff --git a/content/en/_index.html b/content/en/_index.html index 128c6f56cf..02825315d4 100644 --- a/content/en/_index.html +++ b/content/en/_index.html @@ -25,75 +25,63 @@ {{}}
- The Kubeflow project is dedicated to making deployments of machine - learning (ML) workflows on Kubernetes simple, portable and scalable. Our - goal is not to recreate other services, but to provide a straightforward - way to deploy best-of-breed open-source systems for ML to diverse - infrastructures. Anywhere you are running Kubernetes, you should be able - to run Kubeflow. +
+ The Kubeflow project is dedicated to making deployments of machine learning (ML) workflows on Kubernetes simple, portable and scalable.
+ Our goal is not to recreate other services, but to provide a straightforward way to deploy best-of-breed open-source systems for ML to diverse infrastructures.
+
+ Anywhere you are running Kubernetes, you should be able to run Kubeflow.
- Kubeflow includes services to create and manage interactive Jupyter - notebooks. You can customize your notebook deployment and your compute resources to - suit your data science needs. Experiment with your workflows locally, then - deploy them to a cloud when you're ready. + Kubeflow Pipelines (KFP) is a platform for building then deploying portable and scalable machine learning workflows using Kubernetes.
- Kubeflow provides a custom TensorFlow training job operator - that you can use to train your ML model. In particular, Kubeflow's job operator can handle distributed TensorFlow training jobs. - Configure the training controller to use CPUs or GPUs and to suit various cluster sizes. + Kubeflow Notebooks lets you run web-based development environments on your Kubernetes cluster by running them inside Pods.
- Kubeflow supports a TensorFlow Serving container to export trained - TensorFlow models to Kubernetes. Kubeflow is also integrated with - Seldon Core, an open source platform for deploying machine learning - models on Kubernetes, NVIDIA Triton Inference Server for - maximized GPU utilization when deploying ML/DL models at scale, and MLRun Serving, an open-source serverless framework for deployment and monitoring of real-time ML/DL pipelines. + Kubeflow Central Dashboard is our hub which connects the authenticated web interfaces of Kubeflow and other ecosystem components.
- Kubeflow Pipelines is a comprehensive solution for deploying - and managing end-to-end ML workflows. Use Kubeflow Pipelines for rapid and reliable experimentation. - You can schedule and compare runs, and examine detailed reports on each run. + Katib is a Kubernetes-native project for automated machine learning (AutoML) with support for hyperparameter tuning, early stopping and neural architecture search.
- Our development plans extend beyond TensorFlow. We're working - hard to extend the support of - PyTorch, - Apache MXNet, - MPI, - XGBoost, - Chainer, and more. We - also integrate with - Istio and - Ambassador for ingress, - Nuclio as a - fast multi-purpose serverless framework, and Pachyderm for managing - your data science pipelines. + Kubeflow Training Operator is a unified interface for model training on Kubernetes. + It runs scalable and distributed training jobs for popular frameworks including PyTorch, TensorFlow, MPI, MXNet, PaddlePaddle, and XGBoost.
- We are an open and welcoming community of software developers, data scientists, and organizations! - Join our Slack Workspace! + KServe (previously KFServing) solves production model serving on Kubernetes. + It delivers high-abstraction and performant interfaces for frameworks like Tensorflow, XGBoost, ScikitLearn, PyTorch, and ONNX.
+
+ We are an open and welcoming community of software developers, data scientists, and organizations! Check out the weekly community call, get involved in discussions on the mailing list or chat with others on the Slack Workspace!
- - - Join the community -(WZiCGk` ${Lg4nsf-I2SJ$T3
zvb8=Bh9G2q{EAio<_1ydwUh~dA>R~PKt`}{HzJTHA?jtLFcC9%7bbg`rLj!!nYn&2
zSH50t6fO*?UjLu;D5ZTMt>|OU+`u@=?>5o50Cq(C^k2;^2*O3d?JSGdKvxP%uOT`z
zWGwODsx_tiEw>;@eDzhlSEkN^t?%Ik%jA7hLVDKv!)3vg@vGT&8Yn~g`wf8TkO_{u
zoJSI$ob2}moNi#A(cuiMET1XNF2w7_n7joJv3nMP$ES$A(9t#BiYBnuRib~TM@Xnz
zo!ijn-Qa;MW&W-;;4)2ix7xNZBV)kJRiglzO9 x^hDIZ67>D
z8pE%YY1Gv~LVd|0i{vV!;Yj>_AE4NFhdbE(N$P{1QZO!VqO`bX_8PR=Zqq^gmzT5P
z`|!EvQ-9Y@wV8weG`)o2jNn+W)9akor=)TM8@L;hta48uI0(* r^x2OK6a*>;N)h6#C
-aA7
8tM>ELF^`LSt#q^tXL-$=v$b{g8N0h4}Q^PH?ijV5bu~piGL3`c8H?
z?^00eR>$2oxtzt?(mUVrI_dL-es;hZAYuR)4daYLFB_&VIsFd&S>tJ4kTLFBX?OLn
zhpL_pQ63LlSKm2Ji(BUhmip{4V9AB#IzQhKdzo?ZQTaMgekXDwx3d2;e0g#6p$iaO
z{}1dR