From 750f662d9273b0cd71b1a0a4b3824eec89943918 Mon Sep 17 00:00:00 2001 From: julieg18 Date: Tue, 16 Nov 2021 12:17:57 -0600 Subject: [PATCH 01/33] Work on Header --- src/components/Button/index.module.css | 6 +- src/components/Home/Header/index.module.css | 84 ++++++++ src/components/Home/Header/index.tsx | 187 ++++++++++++++++++ src/components/Home/Terminal/index.module.css | 36 ++++ src/components/Home/Terminal/index.tsx | 22 +++ src/components/Home/index.tsx | 3 +- src/images/logo/catboost.png | Bin 0 -> 4919 bytes src/images/logo/dmlc-xgboost.png | Bin 0 -> 4763 bytes src/images/logo/keras.png | Bin 0 -> 2524 bytes src/images/logo/light-gbm.png | Bin 0 -> 3823 bytes src/images/logo/pytorch.png | Bin 0 -> 3529 bytes src/images/logo/scikit-learn.png | Bin 0 -> 3488 bytes src/images/logo/tensorflow.png | Bin 0 -> 3690 bytes tailwind.config.js | 18 +- 14 files changed, 348 insertions(+), 8 deletions(-) create mode 100644 src/components/Home/Header/index.module.css create mode 100644 src/components/Home/Header/index.tsx create mode 100644 src/components/Home/Terminal/index.module.css create mode 100644 src/components/Home/Terminal/index.tsx create mode 100644 src/images/logo/catboost.png create mode 100644 src/images/logo/dmlc-xgboost.png create mode 100644 src/images/logo/keras.png create mode 100644 src/images/logo/light-gbm.png create mode 100644 src/images/logo/pytorch.png create mode 100644 src/images/logo/scikit-learn.png create mode 100644 src/images/logo/tensorflow.png diff --git a/src/components/Button/index.module.css b/src/components/Button/index.module.css index 88fa6cbe..83a08ba0 100644 --- a/src/components/Button/index.module.css +++ b/src/components/Button/index.module.css @@ -22,7 +22,7 @@ &_primary { z-index: 1; position: relative; - @apply text-white bg-blue-green-gradient; + @apply text-white bg-teal-purple-gradient; &:hover { box-shadow: 0px 3px 4px rgba(46, 49, 55, 0.1), @@ -31,7 +31,7 @@ &:focus, &:focus::before { - @apply bg-blue-green-gradient-dark; + @apply bg-teal-purple-gradient-dark; } &::before { @@ -46,7 +46,7 @@ border-radius: 100px; border-radius: inherit; transition: opacity 0.2s ease-out; - @apply bg-blue-green-gradient-light; + @apply bg-teal-purple-gradient-light; } &:hover:not(:disabled)::before { diff --git a/src/components/Home/Header/index.module.css b/src/components/Home/Header/index.module.css new file mode 100644 index 00000000..405ed4ed --- /dev/null +++ b/src/components/Home/Header/index.module.css @@ -0,0 +1,84 @@ +.header { + text-align: left; + + @media (--md-scr) { + display: grid; + grid-template-areas: 'title title' 'captions slides' 'buttons slides' 'logos logos'; + } + + &__title { + grid-area: title; + -webkit-text-fill-color: transparent; + -moz-text-fill-color: transparent; + background-clip: text; + -webkit-background-clip: text; + -moz-background-clip: text; + background-color: black; + background-size: 100%; + margin: 24px 0; + @apply bg-teal-purple-gradient text-lg leading-10 font-bold md:text-6xl md:leading-14 lg:text-9xl lg:leading-15; + + @media (--md-scr) { + margin: 32px 0 36px; + } + + @media (--lg-scr) { + margin: 40px 0 48px; + } + + &Underscore { + -webkit-text-fill-color: transparent; + -moz-text-fill-color: transparent; + background-clip: text; + -webkit-background-clip: text; + -moz-background-clip: text; + background-color: black; + background-size: 100%; + @apply bg-orange-gradient; + } + } + + &__cliSlides { + display: flex; + overflow: hidden; + position: relative; + transition: right 0.2s ease-in-out; + grid-area: slides; + width: calc((100% + 8px) * var(--length)); + right: calc((100% + 8px) * var(--selected-i)); + + li { + width: calc(100vw - 32px); + margin-right: 8px; + } + } + + &__cliCaptions { + display: flex; + overflow: hidden; + position: relative; + transition: right 0.2s ease-in-out; + grid-area: captions; + width: calc((100% + 16px) * var(--length)); + right: calc((100% + 16px) * var(--selected-i)); + + li { + width: calc(100vw - 32px); + margin-right: 16px; + } + } + + &__buttons { + grid-area: buttons; + } + + &__logos { + grid-area: logos; + display: flex; + flex-wrap: wrap; + + @media (--md-scr) { + flex-wrap: nowrap; + } + } +} diff --git a/src/components/Home/Header/index.tsx b/src/components/Home/Header/index.tsx new file mode 100644 index 00000000..45a3cf04 --- /dev/null +++ b/src/components/Home/Header/index.tsx @@ -0,0 +1,187 @@ +import React, { useState } from 'react' +// import cn from 'classnames' +import { StaticImage } from 'gatsby-plugin-image' +import Terminal from '../Terminal' +import Button from '../../Button' +import * as styles from './index.module.css' + +const cliCaptionData: Array<{ bold: string; text: string }> = [ + { + bold: 'Codify your model into a standardized format', + text: 'Automatically extract environment, methods, and input data specification' + }, + { + bold: 'Turn your Git repo into model registry', + text: 'Reuse existing Git and Github/Gitlab infrastructure for model management' + }, + { + bold: 'Use CLI to pack, dockerize and deploy', + text: 'Easily switch between different packaging formats and cloud providers' + }, + { + bold: 'Use Python API to load and apply your models', + text: 'Load models dynamically from any storage or model registry' + } +] + +const cliSlideData: Array = [ + ` +$ python +>>> from training_script import train +>>> model = train() +76%|████████████████████████ | 7568/10000 [00:33<00:10, 229.00it/s] +>>> import mlem +>>> mlem.api.save(model, "./data/model", dvc=True) +>>> +$ tree data/model +data/model +├── artifacts +│   └── data.pkl +└── mlem.yaml +`, + ` + $ mlem ls --repo https://github.com/iterative/model-registry +Models: + - pet-face-recognition + - mlem-blep-classifier + - dog-bark-translator + +$ mlem describe dog-bark-translator --repo https://github.com/iterative/model-registry --rev main + - 📖 Translates dog barks in emoji. + - 📦 Pytorch 1.10.0, Torchaudio 0.10.0, Emoji 1.6.1 + - 🎯 Accuracy 87.3% + `, + ` + $ mlem deploy dog-bark-translator heroku --repo https://github.com/iterative/model-registry +📩 Downloading model... +🏗️ Building dog-bark-translator:latest docker image... +📤 Pushing docker image to heroku, using envs/heroku.yaml specification... +🚀 Starting application... +💫 Application is live, check it out at https://dog-bark-translator.iterative.ai + `, + ` + $ python +>>> import mlem +>>> model = mlem.api.load( +... "dog-bark-translator", +... repo="https://github.com/iterative/model-registry" +...) +>>> model.predict("./short-dog-phrase.wav") +🐶🚀🎉 + ` +] + +const Header: React.FC = () => { + const [initialSwipeX, setInitialSwipeX] = useState(0) + const [finalSwipeX, setFinalSwipeX] = useState(0) + const [selectedCli, setSelectedCli] = useState(0) + + const handleTouchStart = (e: TouchEvent): void => { + setInitialSwipeX(e.nativeEvent.touches[0].clientX) + } + + const handleTouchMove = (e: TouchEvent): void => { + setFinalSwipeX(e.nativeEvent.touches[0].clientX) + } + + const handleTouchEnd = (): void => { + let ind = + selectedCli + 1 <= cliSlideData.length - 1 + ? selectedCli + 1 + : cliSlideData.length - 1 + if (initialSwipeX < finalSwipeX) { + ind = selectedCli - 1 >= 0 ? selectedCli - 1 : 0 + } + setSelectedCli(ind) + } + + return ( +
+

+ + Open-source model registry and deployment tool for Machine Learning + + _ +

+
    + {cliSlideData.map((text, i) => ( +
  • + +
  • + ))} +
+
    + {cliCaptionData.map(({ bold, text }, i) => ( +
  • +

    {bold}

    +

    {text}

    +
  • + ))} +
+
+ + +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ ) +} + +export default Header diff --git a/src/components/Home/Terminal/index.module.css b/src/components/Home/Terminal/index.module.css new file mode 100644 index 00000000..c4a371c6 --- /dev/null +++ b/src/components/Home/Terminal/index.module.css @@ -0,0 +1,36 @@ +.terminal { + box-shadow: 0px 8px 16px rgba(46, 49, 55, 0.1), + 0px 0px 2px rgba(46, 49, 55, 0.2); + padding: 12px; + @apply bg-white rounded-4; + width: 100%; + height: 234px; + + @media (--md-scr) { + width: 320px; + height: 234px; + } + + @media (--lg-scr) { + width: 100%; + height: 234px; + } + + &__btns { + display: flex; + } + + &__btn { + display: block; + width: 6px; + height: 6px; + margin: 0 4px 8px 0; + @apply rounded-full; + + @media (--lg-scr) { + margin-bottom: 12px; + width: 8px; + height: 8px; + } + } +} diff --git a/src/components/Home/Terminal/index.tsx b/src/components/Home/Terminal/index.tsx new file mode 100644 index 00000000..a4f4736d --- /dev/null +++ b/src/components/Home/Terminal/index.tsx @@ -0,0 +1,22 @@ +import React from 'react' +import cn from 'classnames' +import * as styles from './index.module.css' + +interface ITerminalProps { + text: string +} + +const Terminal: React.FC = ({ text }) => { + return ( +
+
+ + + +
+
{text}
+
+ ) +} + +export default Terminal diff --git a/src/components/Home/index.tsx b/src/components/Home/index.tsx index 3dc2356a..926eaf0e 100644 --- a/src/components/Home/index.tsx +++ b/src/components/Home/index.tsx @@ -1,11 +1,12 @@ import React from 'react' import NavBar from '../NavBar' +import Header from './Header' const Home: React.FC = () => { return (
- home +
) } diff --git a/src/images/logo/catboost.png b/src/images/logo/catboost.png new file mode 100644 index 0000000000000000000000000000000000000000..62410e54d409c48c8c03c46e823192fc0f753539 GIT binary patch literal 4919 zcmV-76Ugj|P);#_~f-I=@Dy}jGLyVa(`f{N_VJtQS@aOg8^l3qkkro_Ra57C>1hPF}pa}Q}8 z4h|{NtAr*_R~95M4i0^U-X(NS3UWgx#lfME(905iHx+o3~ zJ&YXxv7XC)rzf)QkjNc-g5TH5BCF?7&Lv;_DauPISJeMSwTxxEbc$6OkfGcNwhj(G z2)l&dTo5Thv%SlUKTcx5yFb{*fkgg|)QD{2E|jNHz9*d_C#Q0wa!ec?dJy(h?t#3> z0~Z^UnIPeL&Ol7A2Z{VEi6^tD{XG7XbOwg87Nj5!4m}8agueGwK-eT`DQ@Be2?(7A zB=v{V8P=SG%%L|iC^kTn-hCwf`T0YElwMP&>~Ezt{0`+O(h2-9)_TvG_B=1YwzlR~ zDwX^2bDME!1!ZY)aB#6yDs6asAJ4%}{>F_PsdDFYx!fY2yZrj=uP=&&RoEf)mNpWx zNa~Mgga5xPt)V2H5}LL&lTAjX%OHu-@j3b(!q#hcE{@A%k3Ck}v}w~U%K42-?$1B} zoSSVJfKsK|VgM67k39P5qh({R@Jo3mRJ(a==NnJo08yFb4&}+}OUa%vf+rgS4 zY<5UsN2kSIVh1^yf`e?f8(}PvnbNCB=~UN@T&|4$Wn&jd$l=I2g}7@sDq@~VBktLT zP%c1w*?B9N7~RJ1-Mb~9&r_?(>3taFD==B=&b346PfOA=J~PaxUD6t%N5vNMYR+^~ zGK3~`WOoT=x{;l1*w?;#&VAjmIUy-W&~Z+vpA~eRwbzQ#{o3BXcJ10B zNaiV=S5SwxDI2^f4k3`t5}1c4jNJ^q)_oT{gl1fsq;3|nGVw(@JP0thT$1$IC-zX2 z(q+j2Ajp_RIw?BwvCEe)pK5lUA~`d0&OQ9_!vzq(D-%pWX7(OW{j8|p)_~{YW);sg zi@{m1k$B77q9uTz19{vWckN{9)9$RqgJ27?IBi(}ev7E{0s)aYPA1J1NOqBlLE#Zbvb^ z@1CQuf3few=^$78oyFjsJE0eUsZcwQ$Nq7wG4bf=`X$OAr9NYfME;Hhl9_|W{b$4K zz1fC#5iI>%5{tkKK59C$7@m;~K<~K(hR85J{4nmx5jC$JQ!M!ZT(gc&(*WnN4s$eS zhnYgh2_+fexmI3%_0{8I2i5zry-6qIS-J5*WPUG_F0WKlt(x+jRXp>#R>EP%0D;cr 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 literal 0 HcmV?d00001 diff --git a/src/images/logo/dmlc-xgboost.png b/src/images/logo/dmlc-xgboost.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6596d39b746af86015e8e7d051e53d66a1b368 GIT binary patch literal 4763 zcmV;M5@hX(P)?bK~#7F?Ook& z+{X2vA$Mg<`3G75fdG~b)T=ah+beJS0+I6owfq8=WVZ!!Q^^I209I zh$sl^@G*)_2*C~;Ldtja`B;e~g#$AYm$I(6!yvfN4jY`G*PGGa-a}U6$l$8t z8T*PIGGL-Lz5S%qX|WPV1_zf!L2yQI@9gZXvqJ{hL-lmCy|A#*W+jdcD!m3Yo6XwZ z&Q2YerdAysT!-&!0a2aFWJsY!z4r5;H}Lc3Z+=5ET=Rnu>K$Md^Bm?J;!a0PA}_-t zjqdiZf8Amwz7gay(e-QBW?}KB!+`;{fUu2y&5v&0ya5c@Q)MuRY1O2=M8 zhPnRXhf|>Xnk-dEznGb6h1Kc>V2oDxm`Y_9RN`om9M=L*tO?%Nil*Cn`m_OKk}pzb zR3|c+*xQ?uoKMGw%ER--dwZ9BOk3i`!K==GaqZd?EKHLb3xmME4`*if4QXRhWf<1M z09I`v2->qVGxNYe3l@z!Fv=`$pxX}2ahGL1E|hQ!)6>)4V|caN-3BkM%M`#sNb5c| zPqwfAN*ppsCi)O05HP}o`XXg3mU0rL#|Sv`7hr)`_`Vd%EUM|T$x3Ak#!o}L0gHSI zKaEq2Ap;<@0F&K9x^SLJ=+|nj_WID!SeI5Dch47a-qPE^K*)gVoIq<0>EJxE;WgfH%2B=Pi~pFmkG4B-VVO2=VPPo=W*+zNogFv#WkjW`QPi^Of<#h%=&cz?eZfk+ zRAiVa!w8=E4~{Y1`7&#rcyy#;U*hE;D~X;y zHEkL)fCx6znDMoxH=-!2>uqXb%|M`L1{<0=rRnhz?mZ-YyM3m&R^sKL|Fj3^v)yeY zM${`I+c6}SBs`~73Z|#vZHg|%Fd}Qrmv{-tGST3mDShhb?wh++{K#MiQ{wbW$eJoh z+cqXlwFUdXpy+D%UK-347>+=RmxD~42y<2t%URcICF*qUKw9D|=FMQW#y|~?V-OFd z!yVk8kqm}WOc~_J3?N~WFGg6PdpN4CG!|sK`V`%PI9`h@-Kmd4iep|x(PveVa47L$ zj`f?r`qeTk@r}SyXVP%%(Y4031TfJZWFY9eQR#HL3?NL2(8C}%v;JmSpxb9erA>86 z(M6+MX2TEDI8R`#E&K%OLapN2e52aBy%Cy|XoJ+6_lwAW`*8 zNye6-|0~=Nl4X@jN5I0jHQh+chc;cuqlFJ5XylxFak8K^|2CH&6_-yiZNfs$+WjJC7q)+V zb}jE%lp2AIFy50*OGv)@<(0QDd5;nCJmfmYSbtdWL~`<9KXDiT)a}hX{nLZ^mxQp! zUU(yqL0>h%!>vA!L))I*zc0DDvw>g$C5{_74B0H}fk4JsxtOibX0j#rI#;RjD76&R z_0K?vMrhO`WzNYDl3N4m%jHCHEWZ2Zrw^-cTHLrlB%{aJV4eQ{=FP-8?($(g9<`k-G2XjExY^l;^sI;#hF`dUl_ZUuj$$+ z#-4)-WW8Dm?$nmiE&-czy8tutwidhTHLnSfR?D5L@ zl~L0nB-xEeKl;upHD1bSnbByY`jY`)*R~4}!Z#pCG6GxY%{p(&#;SvD1#@>9K=Nfs z6F*Egd5z29jO2o{y>LW*Pz+80@j`as|0tXX(Y)V1nFyuP>BR>tl4T3%;f9aH6WTP1 zp+TIgu?$d+J-TwPNztdqC&xev5uPw+ zH^3_!wYqC)6vsTgCuQs~1lk@TQAk^2`1hM*l<^JIZsx_1`a!_)_W~?gBt?t$3BkfU zb{}|?SSvgRHrjmR%_$Xc4oTifk-!MY#KQ2>#{8qnvp@5lBc*o<9E?S#JWZKLZyubN z8(&VICEuvg%ow6(NFVHkQubb?43*A3#8nF5A;=IP1g#k zn2Hj?m>CFN?GPHpYg>GiI5WyOFvuuD@%r|}tp)V%dzH)Avc`hge zk2|jcR(~eu&^;{X-eV33=SIerr1Vzj;xK52Ofe+m`}U288+{9nZL?2FD=C^bT^PHC zk$my2GV+9feL_e%X)P3jvmp4XK?|g1WrSoP&h8_2-0jxih5yMSA>lgz zAFmUf6}c>jTQYSM!hll%>V) zKDvDNJ+rT{VXff{K6X#yapz5Nj`h@z5F`VJD78eTbEgNvRWMqubV{Yp4u-aP7QI8M z;zSBX<5oBDTL3w>bD8nr(K1LCU^oF=M#5FuYbXWrg$T?qjym*!A=~d~?*&K-ptrfk z)azDRJM8%Gaa@abD3lS5FDhgR@*>*9g3rCDJk`G6JKIf|$D=cOE6)zn0Q^JZ{E>+E2t1q0RDlb^U{CtO5*IRg@u6*MQL5JtQf$_@nmJ5%m4Y|R@I zN&eh@m0k}FZzQRx;^0EH1~Cb@KA!afUqsqCLp?92W}Nnn-Q$bJ6k~?iDa@Dbz)Zw+ z^3`D^&R&=^An=M^?-8ULKd^UN4XW5EyHa^`Aj$rIS_M;k1HvO5n!Qf&{B!4C_r*jQ zk?!Tv7Rm5akc@sEx(GAGocamm&~fiE@Tm=7FjzTmqwxyoAiYjxB(sORzo8A`F`mOj zczfLkCZ$EugKH7qU}$=b*K>jt6?-P5HWi9Vr#pfMb`fThGQj4{Jr?dd6=ouIO^d`G zdS&>%$C)oI8W2LPp{Jv~9UkEM-4`DTx1A~hk%Fybq*vQsxQ$*37@ZTyOzzobefaiY z)HSCbr2}8}fSMPh7acuB9#u$s1q$NoPLJ{GmgEtH3!}?E&ng|2Fw^bLB}#28V3eAQ z_#5ZaD8xj{pj44rYbu_J9#k4p*#7bN)-bey?a}17Z%M*Pq!yAa0U>U{{(0zNs!qP5 zZAKi{F5pep?G7xXpy~O4;Uq7HW7<%VPsEQc$zzX%HIS(7&z(}2X4jf-NY4pkA)I$@@;VdMUfUq7no1`s;6Peb@SIRcaOXi}BoJt#O9&&v! ze!b0Os)$ZL^wHaeEI71=I|uhcMn=NqG-!?qPrS;cFoKD6v!{Nh#i|LzTA)pio=k*+ zI6E$)PMs!Jz15G$I$qTWHk&hEdMXo5q=owSqO|OB)XnzYfXoPD4nBjw*FF|@uo3f+ z4+C&}ptUoeYIE*=Y4}A|!E)(U{NoQ18DvfN^Y%!@J zq`M$RRAAA#MH0-k>5JU|Kcezsl*-Oa#qjt9)s5*4$*Xlrf@3mQfae2^lE!b)bK6AU zdW`gpiR7>kF-K=o_6|w-jA}{$0-l$NPA_fD`|Kdwwm@k_x|KYbqNLHWpt8)U$sCLF z>zTPEn8RgADws(zn}$-^QY^TK$d=A2g`EmvKnL$q^937{Lvx)Akl=XlB&a%Qgfrku zZ^e)-9D#NHt&bjVV);icu?0z>VIH7LB;#%(b8Vg&Q8J%Twv^$G=fgD1n~>fi(;mJ8 zGfb>{qp6;HBfI($flNmhxq;CutF~j-sf8ec@clLF$)@5KbZjO# zk9oheraFD%Aq>D(jSii{VL?-GSF5bGCzb7Ijy*9XUY|ey$(DMxNZ0WMNga=q9svpd z5pJO23n`HnV-&srTLgMPLwadZ*$8Na&xr@ROAqlHFfM#F2NyTagUG%G*Z7(Cu~4u; z{0Jr8Xu$Y&x9%(Zdr?Vb9P5{?)G7~u2wf|~-`Z^LGG%zYt${5JqDbEv=6wu3HO)zn9H`rPA(t?x=M$EbNx8({IF^=Yh002ovPDHLkV1l6w4sZYf literal 0 HcmV?d00001 diff --git a/src/images/logo/keras.png b/src/images/logo/keras.png new file mode 100644 index 0000000000000000000000000000000000000000..7f5d8f2b02425654a21ced7b325433ef66ac216a GIT binary patch literal 2524 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 DG#;FB literal 0 HcmV?d00001 diff --git a/src/images/logo/scikit-learn.png b/src/images/logo/scikit-learn.png new file mode 100644 index 0000000000000000000000000000000000000000..4eb326ab62696e633467452080ff214a2da10265 GIT binary patch literal 3488 zcmV;R4PWw!P)J)aa*S#C8<=!B>{>=8#{4O;xx_Xf%Ji*y6^y~v~@(mO^cLN73HBwY!DBq z6*Q4(BL`5DikCjLal}PRLGq@G9jkHTxI7fmq}eDHu_Xvbbzr^TozwrDnX^7KJG
- -
From 026dede4faa4de5ee9e13d6a3887eb84dde2935b Mon Sep 17 00:00:00 2001 From: julieg18 Date: Tue, 7 Dec 2021 09:47:59 -0600 Subject: [PATCH 33/33] Fix Header cli__captions text --- src/components/Home/Header/index.module.css | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/Home/Header/index.module.css b/src/components/Home/Header/index.module.css index 43d02ca2..0d736d6c 100644 --- a/src/components/Home/Header/index.module.css +++ b/src/components/Home/Header/index.module.css @@ -218,6 +218,7 @@ width: calc(100vw - 32px); margin: 12px 16px 0 0; display: flex; + flex-direction: column; @media (--md-scr) { width: 100%; @@ -245,10 +246,14 @@ .cli__text { @media (--md-scr) { - margin: 4px 0 0; + margin: 2px 0 0; height: auto; opacity: 1; } + + @media (--lg-scr) { + margin: 4px 0 0; + } } } } @@ -263,6 +268,7 @@ } &__text { + margin: 4px 0 0; @apply text-gray-600 text-xs leading-7 lg:text-tiny lg:leading-8; @media (--md-scr) {