From 4122e253cd0006f0cd2af43e8f6a6e74230a1c1c Mon Sep 17 00:00:00 2001 From: Nina Zumel Date: Thu, 29 Dec 2022 11:26:28 -0800 Subject: [PATCH 1/8] spruce up landing page --- directory.html | 84 ++++ index.html | 303 ++++++++----- style.css | 1121 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1402 insertions(+), 106 deletions(-) create mode 100644 directory.html create mode 100644 style.css diff --git a/directory.html b/directory.html new file mode 100644 index 0000000..2cfa3b1 --- /dev/null +++ b/directory.html @@ -0,0 +1,84 @@ + + + + + + + + +
+
+
+

WinVector.github.io Directory List

+

Code examples for various blog posts, talks, and tutorials.

+
+
+ +
+ + + +
+
+ + + diff --git a/index.html b/index.html index e3db8d6..6325790 100644 --- a/index.html +++ b/index.html @@ -1,106 +1,197 @@ - - - - - - -
https://winvector.github.io/ - -
- + + + + + + + + + + + + + + + + + + + + Win-Vector, LLC + + + +
+
+
+

Featured Win Vector Projects

+

Code repositories and documentation in R and python .

+ +
+ +
+ PDSwR2
+ Code, Data, and Examples for Practical Data Science with R, 2nd edition (Nina Zumel and John Mount). + + +
+ +
+ vtreat
+ An R data frame processor/conditioner that prepares real-world data for predictive modeling in a statistically sound manner. + + +
+ +
+ pyvtreat
+ A python version of vtreat. + + +
+ + +
+ cdata
+ Higher order fluid or coordinatized data transforms in R. + + +
+ +
+ data_algebra
+ Codd method-chained SQL generator and Pandas data processing in Python. + + +
+ + +
+ WVPlots
+ Pre-packaged plots in R. + + +
+ +
+ wvu
+ Win Vector LLC Python data science teaching tools (graphs and data manipulation). + + +
+ +
+ sigr
+ Concise formatting of significances in R. + + +
+ +
+ wrapr
+ Wrap R for Sweet R Code. + + +
+ +
+
+
+ +
+
+
+

Contact us.

+
+
+
+ +
+ + + \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..95dfec1 --- /dev/null +++ b/style.css @@ -0,0 +1,1121 @@ +/*-------------------------------------------------------------- +TABLE OF CONTENT +---------------------------------------------------------------- +1.0 VARIABLE +| 1.1 COLOR +| 1.2 TYPOGRAPHY +| 1.3 LAYOUT +2.0 FOUNDATION +3.0 TYPOGRAPHY +4.0 IMAGE +5.0 LAYOUT +6.0 COMPONENT +| 6.1 CTA +| 6.2 BUTTON +| 6.3 TOGGLE +| 6.4 CARD +| 6.5 LIST +7.0 SECTION +| 7.1 HEADER +| 7.2 HERO +| 7.3 CUSTOMER +| 7.4 FEATURE +| 7.5 TESTIMONIAL +| 7.6 PRICING +| 7.7 FAQ +| 7.8 CLOSE +| 7.9 FOOTER +8.0 MEDIA +| 8.1 768PX +| 8.2 1024PX +| 8.3 1200PX +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +1.0 VARIABLE +--------------------------------------------------------------*/ + +:root { + + /*------------------------------------------------------------ + | + | 1.1 COLOR + | + ------------------------------------------------------------*/ + + --ui-color-brand: #353535; + + /* COLOR PALETTE */ + + --ui-color-n-000: #FAF9F6; + --ui-color-n-050: #f5f5f5; + --ui-color-n-100: #c7e9c0; + --ui-color-n-300: #a1d99b; + --ui-color-n-500: #238b45; + --ui-color-n-700: #006d2c; + --ui-color-n-900: #00441b; /* the text in all the boxes (body) */ + + /* BACKGROUND COLOR */ + + --ui-color-background-primary : var(--ui-color-n-000); + --ui-color-background-secondary: var(--ui-color-n-500); + --ui-color-background-tertiary : var(--ui-color-n-100); + + /* BORDER COLOR */ + + --ui-color-border: var(--ui-color-n-100); + + /* TYPOGRAPHY COLOR */ + + --ui-color-typography-heading: var(--ui-color-n-700); + --ui-color-typography-body : var(--ui-color-n-900); + --ui-color-typography-note : var(--ui-color-n-300); + --ui-color-typography-button : var(--ui-color-n-000); + + /*------------------------------------------------------------ + | + | 1.2 TYPOGRAPHY + | + ------------------------------------------------------------*/ + + --ui-typography-typeface: "Inter", sans-serif; + + /* FONT SIZE */ + + --ui-typography-h1: 1.9375rem; + --ui-typography-h2: 1.5625rem; + --ui-typography-h3: 1.25rem; + --ui-typography-h4: 1rem; + --ui-typography-p : 1rem; + --ui-typography-s : .8125rem; + + /* LEADING */ + + --ui-typography-h1-leading: 1.2; + --ui-typography-h2-leading: 1.2; + --ui-typography-h4-leading: 1.25; + --ui-typography-p-leading : 1.5; + + /* MARGIN */ + + --ui-typography-margin-heading: .75rem; + --ui-typography-margin-body : 1.125rem; + + /*------------------------------------------------------------ + | + | 1.3 LAYOUT + | + ------------------------------------------------------------*/ + + --ui-layout-container: 1.25rem; + --ui-layout-grid : 3.625rem; + --ui-layout-gutter : 1rem; + + /* GAP */ + + --ui-gap-header : 1rem; + --ui-gap-cta : .75rem; + --ui-gap-hero : 2rem; + --ui-gap-customer: 2rem; + --ui-gap-card : 1.25rem; + --ui-gap-pricing : 1rem; + --ui-gap-faq : 1.5rem; + + /* BORDER RADIUS */ + + --ui-radius-avatar: 5rem; + --ui-radius-button: 5rem; + --ui-radius-card : .5rem; + +} + +/*-------------------------------------------------------------- +2.0 FOUNDATION +--------------------------------------------------------------*/ + +html { box-sizing: border-box; } + +*, +*:before, +*:after { box-sizing: inherit; } + +body { + background-color: var(--ui-color-background-primary); + color: var(--ui-color-typography-body); + font-family: var(--ui-typography-typeface); + font-feature-settings: "liga", "kern"; + font-size: var(--ui-typography-p); + font-weight: 400; + line-height: var(--ui-typography-p-leading); + margin: 0 auto; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} + +/*-------------------------------------------------------------- +3.0 TYPOGRAPHY +--------------------------------------------------------------*/ + +a { + color: var(--ui-color-brand); + text-decoration-color: var(--ui-color-typography-note); +} + +h1, +h2, +h4, +p, +ul { margin-top: 0; } + +h1, +h2, +h4 { color: var(--ui-color-typography-heading); } + +h1, +h2 { margin-bottom: var(--ui-typography-margin-heading); } + +h1 { + font-size: var(--ui-typography-h1); + line-height: var(--ui-typography-h1-leading); +} + +h2 { + font-size: var(--ui-typography-h2); + line-height: var(--ui-typography-h2-leading); +} + +h4 { + font-size: var(--ui-typography-h4); + line-height: var(--ui-typography-h4-leading); +} + +p, +ul { margin-bottom: var(--ui-typography-margin-body); } + +p:last-child, +ul:last-child { margin-bottom: 0; } + +ul { padding-left: 0; } + +strong { font-weight: 700; } + +small { font-size: var(--ui-typography-s); } + +.ui-text-note { + color: var(--ui-color-typography-note); + line-height: 1; +} + +/*-------------------------------------------------------------- +4.0 IMAGE +--------------------------------------------------------------*/ + +img, +svg { + display: block; + height: auto; + margin: 0 auto; + max-width: 100%; +} + +/*-------------------------------------------------------------- +5.0 LAYOUT +--------------------------------------------------------------*/ + +.ui-layout-container { + padding-left: var(--ui-layout-container); + padding-right: var(--ui-layout-container); +} + +.ui-layout-flex, +.ui-layout-grid { + align-items: center; + justify-content: center; +} + +.ui-layout-flex { display: flex; } + +.ui-layout-grid { display: grid; } + +/*-------------------------------------------------------------- +6.0 COMPONENT +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +| +| 6.1 CTA +| +--------------------------------------------------------------*/ + +.ui-component-cta { + flex-direction: column; + row-gap: var(--ui-gap-cta); +} + +/*-------------------------------------------------------------- +| +| 6.2 BUTTON +| +--------------------------------------------------------------*/ + +.ui-component-button { + border: .0625rem solid var(--ui-color-brand); + border-radius: var(--ui-radius-button); + display: block; + font-weight: 700; + line-height: 1; + text-align: center; + text-decoration: none; +} + +.ui-component-button-primary { + background-color: var(--ui-color-brand); + color: var(--ui-color-typography-button); +} + +.ui-component-button-secondary { + background-color: var(--ui-color-background-primary); + color: var(--ui-color-brand); +} + +.ui-component-button-big, +.ui-component-button-normal { padding: .75rem 1rem .875rem; } + +.ui-component-button-big { width: 100%; } + +.ui-component-button-normal { width: fit-content; } + +/*-------------------------------------------------------------- +| +| 6.3 TOGGLE +| +--------------------------------------------------------------*/ + +input[name="toggle"] { display: none; } + +.ui-component-toggle { + background-color: var(--ui-color-background-tertiary); + border-radius: var(--ui-radius-button); + color: var(--ui-color-typography-note); + font-size: var(--ui-typography-s); + font-weight: 700; + line-height: 1; + margin: var(--ui-gap-pricing) auto .5rem; + padding: .25rem; + width: max-content; +} + +.ui-component-toggle--label { + border-radius: var(--ui-radius-button); + cursor: pointer; + padding: .5rem .625rem; +} + +#ui-component-toggle__monthly:checked ~ +div label[for=ui-component-toggle__monthly], +#ui-component-toggle__yearly:checked ~ +div label[for=ui-component-toggle__yearly] { + background-color: var(--ui-color-background-primary); + color: var(--ui-color-typography-body); +} + +/*-------------------------------------------------------------- +| +| 6.4 CARD +| +--------------------------------------------------------------*/ + +.ui-component-card { + border: .0625rem solid var(--ui-color-border); + border-radius: var(--ui-radius-card); + overflow: hidden; + width: 100%; +} + +/*-------------------------------------------------------------- +| +| 6.5 LIST +| +--------------------------------------------------------------*/ + +.ui-component-list { + grid-template-columns: 1fr; + row-gap: .75rem; +} + +.ui-component-list--item { + background-position: left center; + background-repeat: no-repeat; + background-size: 1.125rem; + list-style: none; + padding-left: 1.875rem; +} + +.ui-component-list--item-check { + background-image: url(https://res.cloudinary.com/uisual/image/upload/assets/icons/check.svg); +} + +.ui-component-list--item-cross { + background-image: url(https://res.cloudinary.com/uisual/image/upload/assets/icons/cross.svg); +} + +/*-------------------------------------------------------------- +7.0 SECTION +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +| +| 7.1 HEADER +| +--------------------------------------------------------------*/ + +.ui-section-header { + background-color: var(--ui-color-background-secondary); + text-align: center; + padding-bottom: 1.25rem; + padding-top: 1.25rem; +} + +.ui-section-header__layout { + justify-content: space-between; + align-items: stretch; +} + +/* LOGO */ + +.ui-section-header--logo { z-index: 1; } + +/* HAMBURGER */ + +#ui-section-header--menu-id { display: none; } + +.ui-section-header--menu-icon { + cursor: pointer; + display: block; + height: 1.125rem; + padding-bottom: .25rem; + padding-top: .25rem; + position: relative; + width: 1.125rem; + z-index: 1; +} + +.ui-section-header--menu-icon::before, +.ui-section-header--menu-icon::after { + background: var(--ui-color-brand); + content: ""; + height: .125rem; + left: 0; + position: absolute; + transition: all 250ms cubic-bezier(.785, .135, .15, .86); + width: 1.125rem; +} + +.ui-section-header--menu-icon::before { top: .3125rem; } + +.ui-section-header--menu-icon::after { top: .6875rem; } + +#ui-section-header--menu-id:checked ~ +.ui-section-header--menu-icon::before { + transform: translateY(3px) rotate(135deg); +} + +#ui-section-header--menu-id:checked ~ +.ui-section-header--menu-icon::after { + transform: translateY(-3px) rotate(45deg); +} + +/* MENU */ + +.ui-section-header--nav { + background-color: var(--ui-color-background-primary); + box-shadow: 0 .5rem 1rem rgba(0,0,0,.05); + flex-direction: column; + gap: var(--ui-gap-header); + left: 0; + opacity: 0; + padding: 7.375rem var(--ui-layout-container) 5rem; + position: absolute; + right: 0; + top: -1rem; + transition: all 250ms cubic-bezier(.785, .135, .15, .86); + visibility: hidden; +} + +#ui-section-header--menu-id:checked ~ +.ui-section-header--nav { + opacity: 1; + top: 0; + visibility: visible; +} + +.ui-section-header--nav-link { + font-size: var(--ui-typography-h3); + padding: .5rem; + text-decoration: none; + color: var(--ui-color-background-primary) +} + +/*-------------------------------------------------------------- +| +| 7.2 HERO +| +--------------------------------------------------------------*/ + +.ui-section-hero { + padding-bottom: 5rem; + padding-top: 5rem; + text-align: center; +} + +.ui-section-hero__layout { row-gap: var(--ui-gap-hero); } + +/*-------------------------------------------------------------- +| +| 7.3 CUSTOMER +| +--------------------------------------------------------------*/ + +.ui-section-customer__layout { + flex-direction: column; + row-gap: var(--ui-gap-customer); +} + +.ui-section-customer--logo { + height: 1.5rem; + width: auto; +} + +.ui-section-customer--logo-str { height: 1.75rem; } + +.ui-section-customer--logo-bhn { height: 1.375rem; } + +/*-------------------------------------------------------------- +| +| 7.4 FEATURE +| +--------------------------------------------------------------*/ + +.ui-section-feature { + padding-bottom: 5rem; + padding-top: 5rem; +} + +.ui-section-feature__layout { row-gap: var(--ui-gap-card); } + +/* CARD */ + +.ui-component-card--feature { text-align: center; } + +.ui-component-card--feature-content { padding: 2.25rem 1.5rem; } + +.ui-component-card--feature-title { margin-bottom: .5rem; } + +/*-------------------------------------------------------------- +| +| 7.5 TESTIMONIAL +| +--------------------------------------------------------------*/ + +.ui-section-testimonial { + background-color: var(--ui-color-background-secondary); + padding-bottom: 5rem; + padding-top: 5rem; + text-align: center; +} + +.ui-section-testimonial--avatar { + border-radius: var(--ui-radius-avatar); + height: 5rem; + width: 5rem; +} + +.ui-section-testimonial--quote { + margin-bottom: 1rem; + margin-top: 1rem; +} + +.ui-section-testimonial--author { line-height: 1.25; } + +/*-------------------------------------------------------------- +| +| 7.6 PRICING +| +--------------------------------------------------------------*/ + +.ui-section-pricing { + padding-bottom: 5rem; + padding-top: 5rem; + text-align: center; +} + +.ui-section-pricing__layout { + justify-content: initial; + align-items: stretch; + margin-top: var(--ui-gap-pricing); + row-gap: var(--ui-gap-card); +} + +/* CARD */ + +.ui-component-card--pricing { + background-color: var(--ui-color-background-tertiary); + padding: 1.5rem 1.5rem 1.75rem; + text-align: left; +} + +.ui-component-card--pricing-price { + line-height: 1; + margin-bottom: 1.25rem; + margin-top: 1.25rem; +} + +.ui-component-card--pricing-amount { + font-size: var(--ui-typography-h1); + font-weight: 700; +} + +/* AMOUNT */ + +.ui-component-card--pricing-amount-1::before { content: "$5"; } + +#ui-component-toggle__yearly:checked ~ div +.ui-component-card--pricing-amount-1::before { content: "$3"; } + +.ui-component-card--pricing-amount-2::before { content: "$15"; } + +#ui-component-toggle__yearly:checked ~ div +.ui-component-card--pricing-amount-2::before { content: "$13"; } + +.ui-component-card--pricing-amount-3::before { content: "$25"; } + +#ui-component-toggle__yearly:checked ~ div +.ui-component-card--pricing-amount-3::before { content: "$23"; } + +/* LIST */ + +.ui-component-list--pricing { + margin-bottom: 1.5rem; + margin-top: 1.25rem; +} + +/*-------------------------------------------------------------- +| +| 7.7 FAQ +| +--------------------------------------------------------------*/ + +.ui-section-faq { padding-bottom: 5rem; } + +.ui-section-faq__layout { + margin-bottom: 2rem; + row-gap: var(--ui-gap-faq); + text-align: left; +} + +.ui-section-faq--question { + background-image: url(https://res.cloudinary.com/uisual/image/upload/assets/icons/question.svg); + margin-bottom: .5rem; +} + +.ui-section-faq--answer { padding-left: 1.875rem; } + +.ui-section-faq--note { text-align: center; } + +/*-------------------------------------------------------------- +| +| 7.8 CLOSE +| +--------------------------------------------------------------*/ + +.ui-section-close { + background-color: var(--ui-color-background-secondary); + padding-bottom: 1.25rem; + padding-top: 1.25rem; + text-align: center; +} + +.ui-section-close__layout { + text-align: center; + align-items: stretch; + flex-direction: column; + row-gap: var(--ui-typography-margin-body); +} + +/*-------------------------------------------------------------- +| +| 7.9 FOOTER +| +--------------------------------------------------------------*/ + +.ui-section-footer { + padding-bottom: 1.25rem; + padding-top: 1.25rem; +} + +.ui-section-footer__layout { + column-gap: var(--ui-layout-gutter); +} + +.ui-section-footer--copyright { + margin-bottom: 0; + margin-right: auto; +} + +/*-------------------------------------------------------------- +8.0 MEDIA +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +| +| 8.1 768PX +| +--------------------------------------------------------------*/ + +@media screen and (min-width: 48rem) { + + /*------------------------------------------------------------ + VARIABLE + ------------------------------------------------------------*/ + + :root { + + /*---------------------------------------------------------- + | + | TYPOGRAPHY + | + ----------------------------------------------------------*/ + + /* FONT SIZE */ + + --ui-typography-h1: 2.1875rem; + --ui-typography-h2: 1.75rem; + --ui-typography-h4: 1.125rem; + --ui-typography-p : 1.125rem; + --ui-typography-s : .875rem; + + /* MARGIN */ + + --ui-typography-margin-body: 1.25rem; + + /*---------------------------------------------------------- + | + | LAYOUT + | + ----------------------------------------------------------*/ + + --ui-layout-container: 4.25rem; + --ui-layout-gutter : 1.5rem; + + /* GAP */ + + --ui-gap-header: 1.5rem; + --ui-gap-card : 1.5rem; + --ui-gap-faq : 2rem; + + } + + /*------------------------------------------------------------ + IMAGE + ------------------------------------------------------------*/ + + .ui-image-half-right { + padding-left: var(--ui-layout-gutter); + } + + /*------------------------------------------------------------ + LAYOUT + ------------------------------------------------------------*/ + + .ui-layout-container, + .ui-layout-column-center { + margin-left: auto; + margin-right: auto; + } + + .ui-layout-grid-2, + .ui-layout-grid-3 { + column-gap: var(--ui-layout-gutter); + grid-template-columns: repeat(2, 1fr); + justify-items: center; + } + + .ui-layout-grid-3 div:nth-of-type(3) { + left: calc(50% + (var(--ui-layout-gutter) / 2)); + position: relative; + } + + .ui-layout-column-4 { + width: calc((var(--ui-layout-grid) * 4) + + (var(--ui-layout-gutter) * 3)); + } + + /*------------------------------------------------------------ + COMPONENT + ------------------------------------------------------------*/ + + /*------------------------------------------------------------ + | + | LIST + | + ------------------------------------------------------------*/ + + .ui-component-list--item { + background-size: 1.25rem; + padding-left: 2rem; + } + + /*------------------------------------------------------------ + SECTION + ------------------------------------------------------------*/ + + /*------------------------------------------------------------ + | + | HEADER + | + ------------------------------------------------------------*/ + + .ui-section-header { + padding-bottom: 2rem; + padding-top: 2rem; + } + + /* ICON */ + + .ui-section-header--menu-icon { display: none; } + + /* NAV */ + + .ui-section-header--nav { + background-color: transparent; + box-shadow: none; + flex-direction: row; + opacity: 1; + padding: 0; + position: static; + visibility: visible; + } + + .ui-section-header--nav-link { + font-size: var(--ui-typography-p); + padding: 0; + } + + /*------------------------------------------------------------ + | + | HERO + | + ------------------------------------------------------------*/ + + .ui-section-hero { text-align: left; } + + .ui-section-hero .ui-component-cta { align-items: start; } + + /*------------------------------------------------------------ + | + | CUSTOMER + | + ------------------------------------------------------------*/ + + .ui-section-customer__layout { + column-gap: var(--ui-gap-customer); + flex-direction: row; + } + + .ui-section-customer--logo { + margin-left: 0; + margin-right: 0; + } + + /*------------------------------------------------------------ + | + | FEATURE + | + ------------------------------------------------------------*/ + + .ui-component-card--feature-content { + padding-left: 2.25rem; + padding-right: 2.25rem; + } + + /*------------------------------------------------------------ + | + | PRICING + | + ------------------------------------------------------------*/ + + .ui-component-card--pricing { + padding: 2rem 2rem 2.25rem; + } + + /*------------------------------------------------------------ + | + | FAQ + | + ------------------------------------------------------------*/ + + .ui-section-faq__layout { margin-bottom: 3rem; } + + .ui-section-faq--answer { padding-left: 2rem; } + + /*------------------------------------------------------------ + | + | CLOSE + | + ------------------------------------------------------------*/ + + .ui-section-close__layout { + align-items: center; + column-gap: var(--ui-layout-gutter); + flex-direction: row; + justify-content: space-between; + text-align: left; + } + + /*------------------------------------------------------------ + | + | FOOTER + | + ------------------------------------------------------------*/ + + .ui-section-footer { + padding-bottom: 2rem; + padding-top: 2rem; + } + +} + +/*-------------------------------------------------------------- +| +| 8.2 1024PX +| +--------------------------------------------------------------*/ + +@media screen and (min-width: 64rem) { + + /*------------------------------------------------------------ + VARIABLE + ------------------------------------------------------------*/ + + :root { + + /*---------------------------------------------------------- + | + | LAYOUT + | + ----------------------------------------------------------*/ + + --ui-layout-container: 0; + + } + + /*------------------------------------------------------------ + LAYOUT + ------------------------------------------------------------*/ + + .ui-layout-container { width: 60rem; } + + .ui-layout-grid-3 { grid-template-columns: repeat(3, 1fr); } + + .ui-layout-grid-3 div:nth-of-type(3) { position: static; } + + /*------------------------------------------------------------ + SECTION + ------------------------------------------------------------*/ + + /*------------------------------------------------------------ + | + | HERO + | + ------------------------------------------------------------*/ + + .ui-section-hero .ui-component-cta { + align-items: center; + column-gap: var(--ui-gap-cta); + flex-direction: row; + justify-content: start; + } + +} + +/*-------------------------------------------------------------- +| +| 8.3 1200PX +| +--------------------------------------------------------------*/ + +@media screen and (min-width: 75rem) { + + /*------------------------------------------------------------ + VARIABLE + ------------------------------------------------------------*/ + + :root { + + /*---------------------------------------------------------- + | + | TYPOGRAPHY + | + ----------------------------------------------------------*/ + + /* FONT SIZE */ + + --ui-typography-h1: 2.75rem; + --ui-typography-h2: 2.1875rem; + --ui-typography-h4: 1.4375rem; + + /* MARGIN */ + + --ui-typography-margin-heading: 1rem; + --ui-typography-margin-body : 1.75rem; + + /*---------------------------------------------------------- + | + | LAYOUT + | + ----------------------------------------------------------*/ + + --ui-layout-grid : 4rem; + --ui-layout-gutter: 2rem; + + /* GAP */ + + --ui-gap-header : 2rem; + --ui-gap-customer: 4rem; + --ui-gap-card : 2rem; + --ui-gap-pricing : 3rem; + + } + + /*------------------------------------------------------------ + TYPOGRAPHY + ------------------------------------------------------------*/ + + .ui-text-intro { font-size: var(--ui-typography-h4); } + + /*------------------------------------------------------------ + LAYOUT + ------------------------------------------------------------*/ + + .ui-layout-container { width: 70rem; } + + /*------------------------------------------------------------ + COMPONENT + ------------------------------------------------------------*/ + + /*------------------------------------------------------------ + | + | BUTTON + | + ------------------------------------------------------------*/ + + .ui-component-button-big, + .ui-component-button-normal { + padding-bottom: 1.125rem; + padding-top: 1rem; + } + + /*------------------------------------------------------------ + SECTION + ------------------------------------------------------------*/ + + /*------------------------------------------------------------ + | + | HEADER + | + ------------------------------------------------------------*/ + + .ui-section-header { padding-top: 3rem; } + + /*------------------------------------------------------------ + | + | HERO + | + ------------------------------------------------------------*/ + + .ui-section-hero { + padding-bottom: 7.5rem; + padding-top: 7.5rem; + } + + /*------------------------------------------------------------ + | + | CUSTOMER + | + ------------------------------------------------------------*/ + + .ui-section-customer--logo { height: 2rem; } + + .ui-section-customer--logo-str { height: 2.25rem; } + + .ui-section-customer--logo-bhn { height: 1.75rem; } + + /*------------------------------------------------------------ + | + | FEATURE + | + ------------------------------------------------------------*/ + + .ui-section-feature { + padding-bottom: 7.5rem; + padding-top: 7.5rem; + } + + /*------------------------------------------------------------ + | + | TESTIMONIAL + | + ------------------------------------------------------------*/ + + .ui-section-testimonial { + padding-bottom: 7.5rem; + padding-top: 7.5rem; + } + + /*------------------------------------------------------------ + | + | PRICING + | + ------------------------------------------------------------*/ + + .ui-section-pricing { + padding-bottom: 2.5rem; + padding-top: 2.5rem; + } + + .ui-component-card--pricing { padding: 3rem; } + + /*------------------------------------------------------------ + | + | FAQ + | + ------------------------------------------------------------*/ + + .ui-section-faq { padding-bottom: 7.5rem; } + + .ui-section-faq__layout { margin-bottom: 5rem; } + + /*------------------------------------------------------------ + | + | CLOSE + | + ------------------------------------------------------------*/ + + .ui-section-close { + padding-bottom: 1.25rem; + padding-top: 1.25rem; + } + + /*------------------------------------------------------------ + | + | FOOTER + | + ------------------------------------------------------------*/ + + .ui-section-footer { + text-align: center; + padding-bottom: 3rem; + padding-top: 3rem; + } + +} \ No newline at end of file From f2849ed59c8823cfb11e626f6ced3833eb332145 Mon Sep 17 00:00:00 2001 From: Nina Zumel Date: Thu, 29 Dec 2022 11:35:38 -0800 Subject: [PATCH 2/8] added wv logo --- wv-icon.png | Bin 0 -> 6431 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wv-icon.png diff --git a/wv-icon.png b/wv-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..792204e4b0e0c77fb12f8b4b8a3c80f9ba144dec GIT binary patch literal 6431 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 literal 0 HcmV?d00001 From a59c2593751a9a1883e1d8a28d06a5dda80f140d Mon Sep 17 00:00:00 2001 From: Nina Zumel Date: Thu, 29 Dec 2022 11:43:18 -0800 Subject: [PATCH 3/8] added wvpy, removed wvu --- index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 6325790..7b09178 100644 --- a/index.html +++ b/index.html @@ -134,15 +134,15 @@

Featured Win Vector Projects

- wvu
- Win Vector LLC Python data science teaching tools (graphs and data manipulation). + wvpy
+ Tools for converting Jupyter notebooks to and from Python files..
From 9355e70a6c9f0bf760b265a210accadb60ddedcb Mon Sep 17 00:00:00 2001 From: Nina Zumel Date: Thu, 29 Dec 2022 12:54:08 -0800 Subject: [PATCH 4/8] clean up css --- directory.html | 4 +- index.html | 40 ++--- style.css | 412 ++----------------------------------------------- 3 files changed, 37 insertions(+), 419 deletions(-) diff --git a/directory.html b/directory.html index 2cfa3b1..5ced58d 100644 --- a/directory.html +++ b/directory.html @@ -19,13 +19,13 @@
-
+

WinVector.github.io Directory List

Code examples for various blog posts, talks, and tutorials.

diff --git a/index.html b/index.html index 7b09178..b6e2709 100644 --- a/index.html +++ b/index.html @@ -40,18 +40,18 @@
-
+

Featured Win Vector Projects

Code repositories and documentation in R and python .

-
+
-
+
PDSwR2
Code, Data, and Examples for Practical Data Science with R, 2nd edition (Nina Zumel and John Mount). -
    +
    • Book Site
    • @@ -61,11 +61,11 @@

      Featured Win Vector Projects

-
+
vtreat
An R data frame processor/conditioner that prepares real-world data for predictive modeling in a statistically sound manner. -
    +
    • Project Site
    • @@ -75,11 +75,11 @@

      Featured Win Vector Projects

-
+
pyvtreat
A python version of vtreat. -
    +
    • Project Site
    • @@ -90,11 +90,11 @@

      Featured Win Vector Projects

-
+
cdata
Higher order fluid or coordinatized data transforms in R. -
    +
    • Project Site
    • @@ -104,11 +104,11 @@

      Featured Win Vector Projects

-
+
data_algebra
Codd method-chained SQL generator and Pandas data processing in Python. -
    +
    • Project Site
    • @@ -119,11 +119,11 @@

      Featured Win Vector Projects

-
+
WVPlots
Pre-packaged plots in R. -
    +
    • Project Site
    • @@ -133,11 +133,11 @@

      Featured Win Vector Projects

-
+
wvpy
Tools for converting Jupyter notebooks to and from Python files.. -
    +
    • Project Site
    • @@ -147,11 +147,11 @@

      Featured Win Vector Projects

-
+
sigr
Concise formatting of significances in R. -
    +
    • Project Site
    • @@ -161,11 +161,11 @@

      Featured Win Vector Projects

-
+
wrapr
Wrap R for Sweet R Code. -
From 25d28151e108a70c676bf548579cf67d701ef527 Mon Sep 17 00:00:00 2001 From: Nina Zumel Date: Thu, 9 Jan 2025 14:14:37 -0800 Subject: [PATCH 8/8] added crosslink to vtreat article --- PartialPooling_R/PartialPooling_R.Rmd | 2 +- PartialPooling_R/PartialPooling_R.html | 3 ++- PartialPooling_R/PartialPooling_R.md | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/PartialPooling_R/PartialPooling_R.Rmd b/PartialPooling_R/PartialPooling_R.Rmd index 37ba5bc..01cd258 100644 --- a/PartialPooling_R/PartialPooling_R.Rmd +++ b/PartialPooling_R/PartialPooling_R.Rmd @@ -15,7 +15,7 @@ Banaue rice terraces. Photo: Nina Zumel



-

In a previous article, we showed the use of partial pooling, or +

In a previous +article, we showed the use of partial pooling, or hierarchical/multilevel models, for level coding high-cardinality categorical variables in vtreat. In this article, we will discuss a little more about the how and why of diff --git a/PartialPooling_R/PartialPooling_R.md b/PartialPooling_R/PartialPooling_R.md index 576b5d9..63601d1 100644 --- a/PartialPooling_R/PartialPooling_R.md +++ b/PartialPooling_R/PartialPooling_R.md @@ -15,7 +15,7 @@ Banaue rice terraces. Photo: