-
Your Cart
+
Your Cart
{totalItems}
diff --git a/src/components/cart/CartSidebar/cart-sidebar.scss b/src/components/cart/CartSidebar/cart-sidebar.scss
index 15ebee057..2457b3330 100644
--- a/src/components/cart/CartSidebar/cart-sidebar.scss
+++ b/src/components/cart/CartSidebar/cart-sidebar.scss
@@ -3,18 +3,18 @@
flex-direction: column;
height: 100%;
overflow: auto;
- background-color: var(--bg-neutral-light);
+ background-color: var(--fs-color-neutral-bkg);
> header {
display: flex;
align-items: center;
justify-content: space-between;
- padding: var(--space-2) var(--page-padding-phone) var(--space-2);
- background-color: var(--bg-neutral-lightest);
+ padding: var(--fs-spacing-2) var(--fs-spacing-3) var(--fs-spacing-2);
+ background-color: var(--fs-color-neutral-0);
> [data-store-icon-button] {
&:last-of-type {
- margin-right: calc(-1 * var(--space-1));
+ margin-right: calc(-1 * var(--fs-spacing-1));
}
}
}
@@ -24,7 +24,7 @@
align-items: center;
p {
- margin-right: var(--space-2);
+ margin-right: var(--fs-spacing-2);
line-height: 1.35;
}
}
@@ -32,14 +32,14 @@
> [data-store-list] {
display: flex;
flex-direction: column;
- padding: var(--page-padding-phone);
+ padding: var(--fs-spacing-3);
overflow: auto;
- row-gap: var(--space-2);
+ row-gap: var(--fs-spacing-2);
}
> footer {
margin-top: auto;
- background-color: var(--bg-neutral-lightest);
+ background-color: var(--fs-color-neutral-0);
box-shadow: 0 0 6px rgb(0 0 0 / 20%);
[data-store-button] {
diff --git a/src/components/cart/CartToggle/cart-toggle.scss b/src/components/cart/CartToggle/cart-toggle.scss
index bbc3f6051..1cca1d7ba 100644
--- a/src/components/cart/CartToggle/cart-toggle.scss
+++ b/src/components/cart/CartToggle/cart-toggle.scss
@@ -4,7 +4,7 @@
position: relative;
&::after {
- --cart-toggle-size: var(--space-3);
+ --cart-toggle-size: var(--fs-spacing-3);
position: absolute;
top: rem(6px);
@@ -14,12 +14,12 @@
justify-content: center;
min-width: var(--cart-toggle-size);
height: var(--cart-toggle-size);
- padding: var(--space-0);
- color: var(--color-text-inverse);
- font-weight: var(--text-weight-bold);
- font-size: var(--text-size-0);
- background: var(--bg-secondary-default);
- border-radius: var(--border-radius-pill);
+ padding: var(--fs-spacing-0);
+ color: var(--fs-color-text-inverse);
+ font-weight: var(--fs-text-weight-bold);
+ font-size: var(--fs-text-size-0);
+ background: var(--fs-color-primary-bkg);
+ border-radius: var(--fs-border-radius-pill);
content: attr(data-items);
}
}
diff --git a/src/components/cart/OrderSummary/OrderSummary.tsx b/src/components/cart/OrderSummary/OrderSummary.tsx
index 7a82bffae..035970f85 100644
--- a/src/components/cart/OrderSummary/OrderSummary.tsx
+++ b/src/components/cart/OrderSummary/OrderSummary.tsx
@@ -33,7 +33,7 @@ function OrderSummary({
-{formattedDiscount}
)}
-
+
Total
{useFormattedPrice(total)}
diff --git a/src/components/cart/OrderSummary/order-summary.scss b/src/components/cart/OrderSummary/order-summary.scss
index b8fd831f1..f88ce7064 100644
--- a/src/components/cart/OrderSummary/order-summary.scss
+++ b/src/components/cart/OrderSummary/order-summary.scss
@@ -1,15 +1,15 @@
.order-summary[data-order-summary] {
- padding: var(--space-3);
+ padding: var(--fs-spacing-3);
li {
display: flex;
justify-content: space-between;
line-height: 1.5;
- &[data-order-summary-discount] { color: var(--color-text-success); }
+ &[data-order-summary-discount] { color: var(--fs-color-success-text); }
&:last-of-type {
- margin-bottom: var(--space-2);
+ margin-bottom: var(--fs-spacing-2);
}
}
}
diff --git a/src/components/common/Footer/Footer.tsx b/src/components/common/Footer/Footer.tsx
index 3157b079b..c9b1ac059 100644
--- a/src/components/common/Footer/Footer.tsx
+++ b/src/components/common/Footer/Footer.tsx
@@ -16,14 +16,14 @@ import './footer.scss'
function Footer() {
return (
-
+
-
+
-
+
- Payment Methods
+ Payment Methods
@@ -138,7 +138,7 @@ function Footer() {
-
+
This website uses VTEX technology
In-store price may vary. Prices and offers are subject to change.
diff --git a/src/components/common/Footer/FooterLinks.tsx b/src/components/common/Footer/FooterLinks.tsx
index e851af257..a8299ce71 100644
--- a/src/components/common/Footer/FooterLinks.tsx
+++ b/src/components/common/Footer/FooterLinks.tsx
@@ -139,7 +139,7 @@ function FooterLinks() {
{links.map((section) => (
- {section.title}
+ {section.title}
))}
diff --git a/src/components/common/Footer/footer.scss b/src/components/common/Footer/footer.scss
index ffcbe5b45..f21ea6655 100644
--- a/src/components/common/Footer/footer.scss
+++ b/src/components/common/Footer/footer.scss
@@ -1,7 +1,7 @@
@import "src/styles/scaffold";
.footer {
- background-color: var(--bg-neutral-light);
+ background-color: var(--fs-color-neutral-bkg);
.incentives {
padding-top: 0;
@@ -27,12 +27,12 @@
@include media(">=notebook") {
display: grid;
grid-template-columns: repeat(12, 1fr);
- column-gap: var(--grid-gap-1);
+ column-gap: var(--fs-grid-gap-1);
}
&::before {
width: 100%;
- border-top: 1px solid var(--color-border-display);
+ border-top: 1px solid var(--fs-border-color-light);
content: "";
@include media(">=notebook") {
@@ -43,8 +43,8 @@
.footer__section {
@include media(">=notebook") {
- row-gap: var(--space-7);
- padding-bottom: var(--space-7);
+ row-gap: var(--fs-spacing-7);
+ padding-bottom: var(--fs-spacing-7);
}
}
@@ -58,17 +58,17 @@
text-align: center;
&::before {
- padding-bottom: var(--space-4);
+ padding-bottom: var(--fs-spacing-4);
}
}
@include media(">=notebook") {
padding-top: 0;
- row-gap: var(--grid-gap-2);
+ row-gap: var(--fs-grid-gap-2);
}
[data-store-payment-methods] {
- margin: var(--space-4) auto;
+ margin: var(--fs-spacing-4) auto;
@include media(">=notebook") {
grid-column: 11 / span 2;
@@ -84,8 +84,8 @@
}
[data-payment-methods-flags] {
- .title-sub-subsection {
- margin-bottom: var(--space-3);
+ .text__title-mini {
+ margin-bottom: var(--fs-spacing-3);
text-align: center;
@include media(">=notebook") {
@@ -94,18 +94,18 @@
}
svg {
- border: var(--border-width-0) solid var(--color-neutral-3);
- border-radius: var(--border-radius-small);
+ border: var(--fs-border-width-default) solid var(--fs-color-neutral-3);
+ border-radius: var(--fs-border-radius-small);
}
[data-store-list] {
display: grid;
grid-template-columns: repeat(4, minmax(0, max-content));
justify-content: space-between;
- row-gap: var(--space-1);
+ row-gap: var(--fs-spacing-1);
@include media("
=notebook") {
grid-column: 11 / span 2;
}
- .title-sub-subsection {
+ .text__title-mini {
text-align: center;
@include media(">=notebook") {
@@ -134,27 +134,27 @@
[data-store-list] {
display: flex;
justify-content: center;
- margin-top: var(--space-1);
+ margin-top: var(--fs-spacing-1);
@include media(">=notebook") {
justify-content: space-between;
- margin-top: var(--space-0);
+ margin-top: var(--fs-spacing-0);
}
[data-store-link] {
display: inline-flex;
align-items: center;
justify-content: center;
- min-width: var(--tap-min-size);
- min-height: var(--tap-min-size);
- padding: var(--space-1);
+ min-width: var(--fs-control-tap-size);
+ min-height: var(--fs-control-tap-size);
+ padding: var(--fs-spacing-1);
}
}
}
.footer__copyright {
p + p {
- margin: var(--space-2) auto;
+ margin: var(--fs-spacing-2) auto;
}
address {
@@ -163,17 +163,12 @@
@include media(">=notebook") {
grid-column: span 6;
-
- .text-body-small {
- font-size: var(--text-size-0);
- line-height: 1.5;
- }
}
}
.footer__links {
[data-store-list] {
- margin-bottom: var(--space-2);
+ margin-bottom: var(--fs-spacing-2);
}
[data-store-link] {
@@ -200,10 +195,10 @@
.footer__links-columns {
display: grid;
- grid-gap: var(--grid-gap-1);
+ grid-gap: var(--fs-grid-gap-1);
grid-template-columns: repeat(4, 1fr);
- .title-sub-subsection {
- margin-bottom: var(--space-1);
+ .text__title-mini {
+ margin-bottom: var(--fs-spacing-1);
}
}
diff --git a/src/components/common/Navbar/Navbar.tsx b/src/components/common/Navbar/Navbar.tsx
index 85de6119d..43ed332d8 100644
--- a/src/components/common/Navbar/Navbar.tsx
+++ b/src/components/common/Navbar/Navbar.tsx
@@ -69,8 +69,8 @@ function Navbar() {
}
return (
-
-
+
+
{!searchExpanded && (
<>
diff --git a/src/components/common/Navbar/navbar.scss b/src/components/common/Navbar/navbar.scss
index 97baf5501..fce18d25f 100644
--- a/src/components/common/Navbar/navbar.scss
+++ b/src/components/common/Navbar/navbar.scss
@@ -2,8 +2,8 @@
.navbar {
padding: 0;
- border-bottom: var(--border-width-0) solid var(--color-neutral-2);
- box-shadow: 0 var(--space-0) var(--space-3) var(--color-black-transparent-5);
+ border-bottom: var(--fs-border-width-default) solid var(--fs-color-neutral-2);
+ box-shadow: 0 var(--fs-spacing-0) var(--fs-spacing-3) rgb(0 0 0 / 5%);
[data-store-search-input] {
flex: 1 0 100%;
@@ -44,7 +44,7 @@
justify-content: flex-end;
.navbar__collapse {
- margin-left: calc(-1 * var(--space-3));
+ margin-left: calc(-1 * var(--fs-spacing-3));
}
.signin-link[data-button-signin-link] {
@@ -85,8 +85,8 @@
line-height: 0;
svg {
- width: var(--space-5);
- height: var(--space-5);
+ width: var(--fs-spacing-5);
+ height: var(--fs-spacing-5);
}
}
}
@@ -100,7 +100,7 @@
margin-right: 0.625rem;
[data-store-input] {
- width: calc(100% - var(--space-7));
+ width: calc(100% - var(--fs-spacing-7));
}
[data-store-icon] {
@@ -116,13 +116,13 @@
}
.navbar__header {
- padding-top: var(--space-1);
- padding-bottom: var(--space-2);
+ padding-top: var(--fs-spacing-1);
+ padding-bottom: var(--fs-spacing-2);
overflow: hidden;
@include media(">=notebook") {
- padding-top: var(--space-1);
- padding-bottom: var(--space-1);
+ padding-top: var(--fs-spacing-1);
+ padding-bottom: var(--fs-spacing-1);
}
}
@@ -139,7 +139,7 @@
}
.navbar__modal-body {
- padding: var(--page-padding-phone);
+ padding: var(--fs-spacing-3);
}
.navbar__modal-header {
@@ -147,17 +147,17 @@
display: flex;
align-items: center;
justify-content: space-between;
- padding-bottom: var(--space-2);
+ padding-bottom: var(--fs-spacing-2);
.navbar__button {
- margin-right: calc(-1 * var(--space-1));
+ margin-right: calc(-1 * var(--fs-spacing-1));
}
}
.navlinks {
.navlinks__signin {
- margin-top: var(--space-2);
- padding-top: var(--space-2);
+ margin-top: var(--fs-spacing-2);
+ padding-top: var(--fs-spacing-2);
.signin-link[data-button-signin-link] {
width: fit-content;
@@ -177,18 +177,18 @@
@include media(">=notebook") {
ul {
display: flex;
- padding-top: var(--space-1);
- column-gap: var(--space-3);
+ padding-top: var(--fs-spacing-1);
+ column-gap: var(--fs-spacing-3);
}
a {
width: auto;
- padding: var(--space-0) 0;
+ padding: var(--fs-spacing-0) 0;
}
}
@include media("=notebook") { height: var(--space-6); }
+ @include media(">=notebook") { height: var(--fs-spacing-6); }
[data-store-input] {
width: 100%;
- padding: var(--space-1) var(--space-7) var(--space-1) var(--space-2);
- border: var(--border-width-0) solid var(--color-border-input);
- border-radius: var(--border-radius-default);
+ padding: var(--fs-spacing-1) var(--fs-spacing-7) var(--fs-spacing-1) var(--fs-spacing-2);
+ border: var(--fs-border-width-default) solid var(--fs-border-color-default);
+ border-radius: var(--fs-border-radius-default);
transition: box-shadow .2s ease, border .2s ease;
&:hover {
- border-color: var(--color-border-input-selected);
- box-shadow: 0 0 0 var(--border-width-0) var(--color-border-input-selected);
+ border-color: var(--fs-border-color-default-active);
+ box-shadow: 0 0 0 var(--fs-border-width-default) var(--fs-border-color-default-active);
}
@include input-focus-ring;
@@ -28,21 +28,21 @@
[data-store-button] {
position: absolute;
right: 0;
- width: var(--space-7);
- height: var(--space-7);
+ width: var(--fs-spacing-7);
+ height: var(--fs-spacing-7);
padding: 0;
background-color: transparent;
border: 0;
@include media(">=notebook") {
- height: var(--space-6);
- min-height: var(--space-6);
+ height: var(--fs-spacing-6);
+ min-height: var(--fs-spacing-6);
}
}
[data-store-button] svg {
- width: var(--space-4);
- height: var(--space-4);
- color: var(--color-neutral-7);
+ width: var(--fs-spacing-4);
+ height: var(--fs-spacing-4);
+ color: var(--fs-color-neutral-7);
}
}
diff --git a/src/components/product/ProductCard/ProductCard.tsx b/src/components/product/ProductCard/ProductCard.tsx
index 054a88175..a8788f93f 100644
--- a/src/components/product/ProductCard/ProductCard.tsx
+++ b/src/components/product/ProductCard/ProductCard.tsx
@@ -75,7 +75,7 @@ function ProductCard({
-
+
{name}
@@ -87,7 +87,7 @@ function ProductCard({
testId="list-price"
data-value={listPrice}
variant="listing"
- classes="text-body-small"
+ classes="text__legend"
SRText="Original price:"
/>
diff --git a/src/components/product/ProductCard/product-card.scss b/src/components/product/ProductCard/product-card.scss
index 03d6dd79e..253898f78 100644
--- a/src/components/product/ProductCard/product-card.scss
+++ b/src/components/product/ProductCard/product-card.scss
@@ -6,28 +6,28 @@
flex-direction: column;
min-width: 14rem;
height: 100%;
- padding: var(--space-1) var(--space-1) var(--space-2);
- border: var(--border-width-0) solid transparent;
- border-radius: var(--border-radius-default);
+ padding: var(--fs-spacing-1) var(--fs-spacing-1) var(--fs-spacing-2);
+ border: var(--fs-border-width-default) solid transparent;
+ border-radius: var(--fs-border-radius-default);
transition: box-shadow .5s ease, border .5s ease;
&:hover,
&:focus {
- background-color: var(--bg-neutral-lightest);
+ background-color: var(--fs-color-neutral-0);
}
&:focus-within { @include focus-ring; }
@media (hover: hover) {
&:hover {
- border: var(--border-width-0) solid var(--color-border-display);
- box-shadow: var(--box-shadow);
+ border: var(--fs-border-width-default) solid var(--fs-border-color-light);
+ box-shadow: var(--fs-shadow);
}
}
&[data-card-variant="vertical"] {
[data-card-content] {
- padding-top: var(--space-2);
+ padding-top: var(--fs-spacing-2);
}
}
@@ -36,12 +36,12 @@
display: flex;
flex-wrap: wrap;
justify-content: space-between;
- padding: var(--space-3);
- background-color: var(--bg-neutral-light);
+ padding: var(--fs-spacing-3);
+ background-color: var(--fs-color-neutral-bkg);
}
.product-card__heading {
- margin-right: var(--space-1);
+ margin-right: var(--fs-spacing-1);
}
}
@@ -49,23 +49,23 @@
border: none;
@include media(">=notebook") {
- border: var(--border-width-0) solid var(--color-border-display);
+ border: var(--fs-border-width-default) solid var(--fs-border-color-light);
}
}
&[data-card-out-of-stock="true"] {
- background-color: var(--bg-neutral-light);
+ background-color: var(--fs-color-neutral-bkg);
}
[data-card-image] {
overflow: hidden;
- border-radius: var(--border-radius-default);
+ border-radius: var(--fs-border-radius-default);
transform: translate3d(0, 0, 0);
}
[data-card-content] a[href] {
min-height: 100%;
- max-height: var(--space-6);
+ max-height: var(--fs-spacing-6);
padding: 0;
color: inherit;
text-decoration: none;
@@ -87,12 +87,12 @@
[data-card-actions] {
position: relative;
margin-top: auto;
- padding-top: var(--space-4);
+ padding-top: var(--fs-spacing-4);
}
.product-card__prices {
display: inline-flex;
align-content: center;
- margin-bottom: var(--space-2);
+ margin-bottom: var(--fs-spacing-2);
}
}
diff --git a/src/components/product/ProductGrid/product-grid.scss b/src/components/product/ProductGrid/product-grid.scss
index 62086aec0..eb4a23941 100644
--- a/src/components/product/ProductGrid/product-grid.scss
+++ b/src/components/product/ProductGrid/product-grid.scss
@@ -8,7 +8,7 @@
gap: var(--gap);
@include media(">=notebook") {
- --gap: var(--grid-gap-0);
+ --gap: var(--fs-grid-gap-0);
$pagination-start-index: 2;
@@ -20,6 +20,6 @@
}
li {
- background-color: var(--color-neutral-0);
+ background-color: var(--fs-color-neutral-0);
}
}
diff --git a/src/components/search/Filter/Facets.tsx b/src/components/search/Filter/Facets.tsx
index 6759dbd0b..1e356fc2e 100644
--- a/src/components/search/Filter/Facets.tsx
+++ b/src/components/search/Filter/Facets.tsx
@@ -34,7 +34,7 @@ function Facets({
}: FacetsProps) {
return (
-
Filters
+
Filters
{filteredFacets.map(({ label, values, key }, index) => (
-
+
{item.label}{' '}
{item.quantity}
diff --git a/src/components/search/Filter/Filter.tsx b/src/components/search/Filter/Filter.tsx
index 8df3e373b..1a8ce90c3 100644
--- a/src/components/search/Filter/Filter.tsx
+++ b/src/components/search/Filter/Filter.tsx
@@ -195,7 +195,7 @@ function Filter({
>
- Filters
+ Filters
.title-small {
+ > .text__title-mini-alt {
display: flex;
align-items: center;
height: var(--product-listing-row-height);
- margin-bottom: var(--space-0);
+ margin-bottom: var(--fs-spacing-0);
@include media("=notebook") {
- border: 1px solid var(--color-border-display);
- border-radius: var(--border-radius-default);
+ border: 1px solid var(--fs-border-color-light);
+ border-radius: var(--fs-border-radius-default);
}
}
[data-accordion-item] [data-store-button] {
- font-weight: var(--text-weight-regular);
- font-size: var(--text-size-3);
+ font-weight: var(--fs-text-weight-regular);
+ font-size: var(--fs-text-size-3);
line-height: 1.5;
@include media(">=notebook") {
- font-size: var(--text-size-2);
+ font-size: var(--fs-text-size-2);
line-height: 1.25;
}
@@ -65,11 +65,11 @@
display: flex;
align-items: center;
width: 100%;
- margin-left: var(--space-1);
+ margin-left: var(--fs-spacing-1);
}
[data-store-badge] {
- margin-left: var(--space-1);
+ margin-left: var(--fs-spacing-1);
}
}
@@ -80,7 +80,7 @@
justify-content: space-between;
.filter-modal__button {
- margin-right: calc(-1 * var(--space-1));
+ margin-right: calc(-1 * var(--fs-spacing-1));
}
}
@@ -88,7 +88,7 @@
--filter-footer-height: 80px;
height: calc(100vh - var(--filter-footer-height));
- padding: var(--page-padding-phone) var(--page-padding-phone) calc(var(--filter-footer-height) + var(--space-3));
+ padding: var(--fs-spacing-3) var(--fs-spacing-3) calc(var(--filter-footer-height) + var(--fs-spacing-3));
overflow-y: auto;
}
@@ -98,14 +98,14 @@
display: flex;
justify-content: space-between;
width: 100%;
- padding: var(--space-3);
- background-color: var(--bg-neutral-lightest);
+ padding: var(--fs-spacing-3);
+ background-color: var(--fs-color-neutral-0);
box-shadow: 0 0 6px rgb(0 0 0 / 20%);
.button {
&[data-button-variant="secondary"] {
width: 40%;
- margin-right: var(--space-3);
+ margin-right: var(--fs-spacing-3);
}
&[data-button-variant="primary"] {
diff --git a/src/components/search/History/search-history.scss b/src/components/search/History/search-history.scss
index cb34b750f..8b00e1d75 100644
--- a/src/components/search/History/search-history.scss
+++ b/src/components/search/History/search-history.scss
@@ -4,17 +4,17 @@
display: flex;
align-items: center;
justify-content: space-between;
- margin-bottom: var(--space-1);
- padding-right: var(--space-3);
- padding-left: var(--space-3);
+ margin-bottom: var(--fs-spacing-1);
+ padding-right: var(--fs-spacing-3);
+ padding-left: var(--fs-spacing-3);
}
[data-store-search-history-title] {
- font-size: var(--text-size-3);
+ font-size: var(--fs-text-size-3);
}
[data-store-search-history] {
- padding: var(--space-1) var(--space-3) var(--space-2);
+ padding: var(--fs-spacing-1) var(--fs-spacing-3) var(--fs-spacing-2);
background-color: var(--bg-neutral-lightest);
}
@@ -23,15 +23,15 @@
display: flex;
align-items: center;
justify-content: space-between;
- padding-right: var(--space-3);
- padding-left: var(--space-3);
+ padding-right: var(--fs-spacing-3);
+ padding-left: var(--fs-spacing-3);
color: var(--color-neutral-6);
- font-size: var(--text-size-2);
+ font-size: var(--fs-text-size-2);
}
[data-store-icon] {
display: flex;
- &:first-of-type { margin-right: var(--space-1); }
+ &:first-of-type { margin-right: var(--fs-spacing-1); }
}
}
@@ -39,7 +39,7 @@
display: flex;
align-items: center;
justify-content: center;
- width: var(--space-4);
- height: var(--space-4);
+ width: var(--fs-spacing-4);
+ height: var(--fs-spacing-4);
margin-left: auto;
}
diff --git a/src/components/search/Sort/Sort.tsx b/src/components/search/Sort/Sort.tsx
index 24ff7dfe8..96d7d3444 100644
--- a/src/components/search/Sort/Sort.tsx
+++ b/src/components/search/Sort/Sort.tsx
@@ -24,7 +24,7 @@ function Sort() {
return (
setSort(keys[e.target.selectedIndex])}
diff --git a/src/components/search/SuggestionProductCard/SuggestionProductCard.tsx b/src/components/search/SuggestionProductCard/SuggestionProductCard.tsx
index 6e4c595bb..4dfd5a690 100644
--- a/src/components/search/SuggestionProductCard/SuggestionProductCard.tsx
+++ b/src/components/search/SuggestionProductCard/SuggestionProductCard.tsx
@@ -51,10 +51,7 @@ function SuggestionProductCard({
-
+
{name}
@@ -64,7 +61,7 @@ function SuggestionProductCard({
testId="list-price"
data-value={listPrice}
variant="listing"
- classes="text-body-small"
+ classes="text__legend"
SRText="Original price:"
/>
diff --git a/src/components/search/SuggestionProductCard/suggestion-product-card.scss b/src/components/search/SuggestionProductCard/suggestion-product-card.scss
index cecd94260..e16ba1a81 100644
--- a/src/components/search/SuggestionProductCard/suggestion-product-card.scss
+++ b/src/components/search/SuggestionProductCard/suggestion-product-card.scss
@@ -1,18 +1,18 @@
@import "src/styles/scaffold";
.suggestion-product-card {
- padding: var(--space-1) 0;
+ padding: var(--fs-spacing-1) 0;
[data-card-content] {
display: grid;
grid-template-columns: rem(56px) repeat(4, 1fr);
align-items: center;
- column-gap: var(--grid-gap-0);
+ column-gap: var(--fs-grid-gap-0);
}
[data-gatsby-image-wrapper] {
flex-shrink: 0;
- border-radius: var(--border-radius-default);
+ border-radius: var(--fs-border-radius-default);
}
[data-suggestion-product-card-summary] {
@@ -21,7 +21,7 @@
}
[data-suggestion-product-card-title] {
- margin-bottom: var(--space-0);
+ margin-bottom: var(--fs-spacing-0);
color: inherit;
line-height: 1.2;
text-decoration: none;
diff --git a/src/components/search/Suggestions/suggestions.scss b/src/components/search/Suggestions/suggestions.scss
index 7ea710f7c..7885394f0 100644
--- a/src/components/search/Suggestions/suggestions.scss
+++ b/src/components/search/Suggestions/suggestions.scss
@@ -1,37 +1,37 @@
@import "src/styles/scaffold";
.suggestions__title {
- margin-bottom: var(--space-1);
- padding: 0 var(--space-3);
- font-size: var(--text-size-3);
+ margin-bottom: var(--fs-spacing-1);
+ padding: 0 var(--fs-spacing-3);
+ font-size: var(--fs-text-size-3);
line-height: 1.5;
}
.suggestions__section {
- padding: var(--space-2) 0;
- background-color: var(--bg-neutral-lightest);
+ padding: var(--fs-spacing-2) 0;
+ background-color: var(--fs-color-neutral-0);
&:not(:last-child) {
- border-bottom: var(--border-width-0) solid var(--color-border-display);
+ border-bottom: var(--fs-border-width-default) solid var(--fs-border-color-light);
}
}
.suggestions__item {
- padding-right: var(--space-3);
- padding-left: var(--space-3);
+ padding-right: var(--fs-spacing-3);
+ padding-left: var(--fs-spacing-3);
&:hover {
- background-color: var(--color-secondary-0);
+ background-color: var(--fs-color-main-0);
}
}
[data-store-suggestions-top-search] {
ol {
- margin-top: var(--space-1);
+ margin-top: var(--fs-spacing-1);
}
.suggestions__item {
- font-size: var(--text-size-2);
+ font-size: var(--fs-text-size-2);
line-height: 1.25;
[data-store-link] {
@@ -40,29 +40,29 @@
}
[data-store-badge] {
- margin-right: var(--space-1);
+ margin-right: var(--fs-spacing-1);
}
}
}
[data-store-suggestions] {
.suggestions__item-bold {
- color: var(--color-neutral-7);
- font-weight: var(--text-weight-bold);
+ color: var(--fs-color-neutral-7);
+ font-weight: var(--fs-text-weight-bold);
}
.button[data-store-button] {
- padding: var(--space-2) 0;
- color: var(--color-text-subtle);
- font-weight: var(--text-weight-regular);
- font-size: var(--text-size-2);
+ padding: var(--fs-spacing-2) 0;
+ color: var(--fs-color-text-light);
+ font-weight: var(--fs-text-weight-regular);
+ font-size: var(--fs-text-size-2);
line-height: 1.25;
background-color: transparent;
cursor: pointer;
}
[data-store-link] {
- padding: var(--space-2) 0;
+ padding: var(--fs-spacing-2) 0;
text-decoration: none;
outline: none;
}
diff --git a/src/components/sections/BannerText/BannerText.tsx b/src/components/sections/BannerText/BannerText.tsx
index 51937815e..a9749f1fd 100644
--- a/src/components/sections/BannerText/BannerText.tsx
+++ b/src/components/sections/BannerText/BannerText.tsx
@@ -36,10 +36,10 @@ function BannerText({
actionLabel,
}: BannerTextProps) {
return (
-
+
-
-
+
+
diff --git a/src/components/sections/BannerText/banner-text.scss b/src/components/sections/BannerText/banner-text.scss
index 5e29b69f7..5b8b8374e 100644
--- a/src/components/sections/BannerText/banner-text.scss
+++ b/src/components/sections/BannerText/banner-text.scss
@@ -1,10 +1,17 @@
@import "src/styles/scaffold";
[data-store-banner] {
- padding-top: var(--space-6);
- padding-bottom: var(--space-6);
+ padding-top: var(--fs-spacing-6);
+ padding-bottom: var(--fs-spacing-6);
text-align: center;
- background-color: var(--color-secondary-4);
+ background-color: var(--fs-color-main-4);
+
+ h2, p {
+ display: inline;
+ color: var(--fs-color-text-inverse);
+
+ @include media(">=notebook") { display: block; }
+ }
[data-banner-content] {
display: flex;
@@ -12,25 +19,26 @@
align-items: center;
}
- h2, p {
- display: inline;
- color: var(--color-text-inverse);
+ [data-banner-text] {
+ font-weight: var(--fs-text-weight-bold);
+ font-size: var(--fs-text-size-3);
+ line-height: 1.25;
- @include media(">=notebook") { display: block; }
+ @include media(">=notebook") { font-size: var(--fs-text-size-6); }
}
[data-banner-link] a {
width: 11.25rem;
- margin-top: var(--space-5);
+ margin-top: var(--fs-spacing-5);
@include media(">=notebook") {
- margin-top: var(--space-7);
- padding: var(--space-2) var(--space-4);
+ margin-top: var(--fs-spacing-7);
+ padding: var(--fs-spacing-2) var(--fs-spacing-4);
}
}
@include media(">=notebook") {
- padding-top: var(--space-9);
- padding-bottom: var(--space-9);
+ padding-top: var(--fs-spacing-9);
+ padding-bottom: var(--fs-spacing-9);
}
}
diff --git a/src/components/sections/Breadcrumb/Breadcrumb.tsx b/src/components/sections/Breadcrumb/Breadcrumb.tsx
index cf7887e8d..058455bd9 100644
--- a/src/components/sections/Breadcrumb/Breadcrumb.tsx
+++ b/src/components/sections/Breadcrumb/Breadcrumb.tsx
@@ -16,7 +16,7 @@ function Breadcrumb({ breadcrumbList, name }: BreadcrumbWrapperProps) {
const list = breadcrumbList ?? fallback
return (
-
+
)
diff --git a/src/components/sections/Breadcrumb/breadcrumb.scss b/src/components/sections/Breadcrumb/breadcrumb.scss
index 6047f2b94..2e42d043f 100644
--- a/src/components/sections/Breadcrumb/breadcrumb.scss
+++ b/src/components/sections/Breadcrumb/breadcrumb.scss
@@ -1,6 +1,6 @@
@import "src/styles/scaffold";
.breadcrumb {
- padding-top: var(--space-3);
- padding-bottom: var(--space-3);
+ padding-top: var(--fs-spacing-3);
+ padding-bottom: var(--fs-spacing-3);
}
diff --git a/src/components/sections/Hero/Hero.tsx b/src/components/sections/Hero/Hero.tsx
index 36492138a..f7b47d44b 100644
--- a/src/components/sections/Hero/Hero.tsx
+++ b/src/components/sections/Hero/Hero.tsx
@@ -46,18 +46,11 @@ const Hero = ({
-
-
-
- {title}
-
+
+
+
{title}
-
{subtitle}
+
{subtitle}
{!!link && (
@@ -66,7 +59,7 @@ const Hero = ({
)}
- {!!icon &&
{icon}
}
+ {!!icon &&
{icon}
}
diff --git a/src/components/sections/Incentives/Incentives.tsx b/src/components/sections/Incentives/Incentives.tsx
index 8d00a6aaf..f3c727a4a 100644
--- a/src/components/sections/Incentives/Incentives.tsx
+++ b/src/components/sections/Incentives/Incentives.tsx
@@ -18,8 +18,8 @@ interface Props {
function Incentives({ incentives, classes = '' }: Props) {
return (
-
-
+
+
{incentives.map((incentive, index) => (
diff --git a/src/components/sections/Incentives/incentives.scss b/src/components/sections/Incentives/incentives.scss
index 084d6bb41..b9eb5ff22 100644
--- a/src/components/sections/Incentives/incentives.scss
+++ b/src/components/sections/Incentives/incentives.scss
@@ -13,13 +13,13 @@
li {
&:not(:first-child) {
[data-store-incentive] {
- padding: 0 var(--space-4);
+ padding: 0 var(--fs-spacing-4);
}
}
&:first-child {
[data-store-incentive] {
- padding-right: var(--space-4);
+ padding-right: var(--fs-spacing-4);
padding-left: 0;
}
}
@@ -38,7 +38,7 @@
li {
&:not(:last-child) {
- border-right: 1px solid var(--color-border-display);
+ border-right: 1px solid var(--fs-border-color-light);
}
}
}
@@ -50,11 +50,11 @@
justify-content: center;
p, span {
- font-size: var(--text-size-1);
+ font-size: var(--fs-text-size-1);
}
p {
- font-weight: var(--text-weight-bold);
+ font-weight: var(--fs-text-weight-bold);
line-height: 1.42;
}
@@ -69,23 +69,23 @@
}
@include media("=notebook") {
flex-direction: row;
- padding: 0 var(--space-5);
+ padding: 0 var(--fs-spacing-5);
[data-incentive-content] {
- margin-left: var(--space-2);
+ margin-left: var(--fs-spacing-2);
text-align: left;
}
}
}
&.incentives--colored {
- padding-top: var(--space-4);
- padding-bottom: var(--space-4);
- background-color: var(--bg-secondary-light);
+ padding-top: var(--fs-spacing-4);
+ padding-bottom: var(--fs-spacing-4);
+ background-color: var(--fs-color-primary-bkg-light);
}
}
diff --git a/src/components/sections/ProductDetails/ProductDetails.tsx b/src/components/sections/ProductDetails/ProductDetails.tsx
index 7c66e095d..0caa888ef 100644
--- a/src/components/sections/ProductDetails/ProductDetails.tsx
+++ b/src/components/sections/ProductDetails/ProductDetails.tsx
@@ -116,13 +116,13 @@ function ProductDetails({ product: staleProduct }: Props) {
])
return (
-
+
{name}}
+ title={{name} }
label={ }
refNumber={productId}
/>
@@ -145,7 +145,7 @@ function ProductDetails({ product: staleProduct }: Props) {
testId="list-price"
data-value={listPrice}
variant="listing"
- classes="text-body-small"
+ classes="text__legend"
SRText="Original price:"
/>
{/*
-
{formattedListPrice}
+
{formattedListPrice}
{isValidating ? '' : formattedPrice}
*/}
@@ -179,8 +179,8 @@ function ProductDetails({ product: staleProduct }: Props) {
- Description
- {description}
+ Description
+ {description}
diff --git a/src/components/sections/ProductDetails/product-details.scss b/src/components/sections/ProductDetails/product-details.scss
index 72976cb37..297a3a829 100644
--- a/src/components/sections/ProductDetails/product-details.scss
+++ b/src/components/sections/ProductDetails/product-details.scss
@@ -1,30 +1,30 @@
@import "src/styles/scaffold";
-.product-details { margin-top: var(--space-3); }
+.product-details { margin-top: var(--fs-spacing-3); }
.product-details__body {
display: flex;
flex-direction: column;
- row-gap: var(--space-4);
- margin-top: var(--space-3);
+ row-gap: var(--fs-spacing-4);
+ margin-top: var(--fs-spacing-3);
@include media(">=tablet") {
display: grid;
grid-template-rows: repeat(4, minmax(0, max-content));
grid-template-columns: repeat(12, 1fr);
- column-gap: var(--space-4);
+ column-gap: var(--fs-spacing-4);
row-gap: 0;
}
}
.product-details__image {
position: relative;
- left: calc(-1 * var(--page-padding-phone));
- width: calc(100% + (2 * var(--page-padding-phone)));
+ left: calc(-1 * var(--fs-grid-padding));
+ width: calc(100% + (2 * var(--fs-grid-padding)));
[data-gatsby-image-wrapper] {
@include media(">=tablet") {
- border-radius: var(--border-radius-default);
+ border-radius: var(--fs-border-radius-default);
transform: translate3d(0, 0, 0);
}
}
@@ -34,15 +34,15 @@
grid-row: 1 / span 2;
grid-column: span 7;
width: 100%;
- margin-bottom: var(--space-7);
+ margin-bottom: var(--fs-spacing-7);
}
@include media(">=notebook") { grid-column: span 8; }
}
.product-details__content {
- margin-top: var(--space-3);
- .product-details__description .title-subsection { margin-bottom: var(--space-3); }
+ margin-top: var(--fs-spacing-3);
+ .product-details__description .text__title-subsection { margin-bottom: var(--fs-spacing-3); }
@include media(">=tablet") {
grid-column: span 7;
@@ -56,8 +56,8 @@
@include media(">=tablet") {
grid-row: 1;
grid-column: 8 / span 5;
- border: 1px solid var(--color-border-display);
- border-radius: var(--border-radius-default) var(--border-radius-default) 0 0;
+ border: 1px solid var(--fs-border-color-light);
+ border-radius: var(--fs-border-radius-default) var(--fs-border-radius-default) 0 0;
}
@include media(">=notebook") { grid-column: 9 / span 4; }
@@ -67,8 +67,8 @@
height: fit-content;
[data-store-sku-selector] {
- margin-bottom: var(--space-4);
- &:last-of-type { margin-bottom: var(--space-7); }
+ margin-bottom: var(--fs-spacing-4);
+ &:last-of-type { margin-bottom: var(--fs-spacing-7); }
}
[data-store-buy-button] { width: 100%; }
@@ -78,17 +78,17 @@
&[data-variant="spot"] {
margin: 0;
- font-weight: var(--text-weight-black);
+ font-weight: var(--fs-text-weight-black);
}
}
@include media(">=tablet") {
grid-row: 2 / span 3;
grid-column: 8 / span 5;
- padding: var(--space-5);
- border: 1px solid var(--color-border-display);
+ padding: var(--fs-spacing-5);
+ border: 1px solid var(--fs-border-color-light);
border-top: 0;
- border-radius: 0 0 var(--border-radius-default) var(--border-radius-default);
+ border-radius: 0 0 var(--fs-border-radius-default) var(--fs-border-radius-default);
}
@include media(">=notebook") { grid-column: 9 / span 4; }
@@ -97,5 +97,5 @@
.product-details__values {
display: flex;
justify-content: space-between;
- margin-bottom: var(--space-4);
+ margin-bottom: var(--fs-spacing-4);
}
diff --git a/src/components/sections/ProductGallery/ProductGallery.tsx b/src/components/sections/ProductGallery/ProductGallery.tsx
index c359e3878..da3901324 100644
--- a/src/components/sections/ProductGallery/ProductGallery.tsx
+++ b/src/components/sections/ProductGallery/ProductGallery.tsx
@@ -34,22 +34,22 @@ function ProductGallery({ title, searchTerm }: Props) {
if (data && totalCount === 0) {
return (
-
+
)
}
return (
-
+
{searchTerm && (
-
+
Showing results for: {searchTerm}
)}
-
+
=notebook") {
- padding-top: var(--space-5);
+ padding-top: var(--fs-spacing-5);
}
}
.product-listing__search-term {
@include media(">=notebook") {
- padding-bottom: var(--space-6);
+ padding-bottom: var(--fs-spacing-6);
}
h1 {
- font-size: var(--text-size-4);
+ font-size: var(--fs-text-size-4);
- @include media(">=tablet") { font-size: var(--text-size-5); }
+ @include media(">=tablet") { font-size: var(--fs-text-size-5); }
span {
- font-weight: var(--text-weight-bold);
+ font-weight: var(--fs-text-weight-bold);
}
}
}
@@ -38,17 +38,17 @@
display: grid;
grid-template-rows: var(--product-listing-row-height) auto;
grid-template-columns: repeat(12, 1fr);
- padding-right: var(--page-padding-notebook);
- padding-left: var(--page-padding-notebook);
- column-gap: var(--space-4);
- row-gap: var(--space-0);
+ padding-right: var(--fs-grid-padding);
+ padding-left: var(--fs-grid-padding);
+ column-gap: var(--fs-spacing-4);
+ row-gap: var(--fs-spacing-0);
}
}
.product-listing__filters {
@include media(">=notebook") {
position: sticky;
- top: var(--grid-gap-0);
+ top: var(--fs-grid-gap-0);
grid-row: span 2;
grid-column: 1 / span 3;
align-self: start;
@@ -62,12 +62,12 @@
order: 1;
width: 100%;
min-height: rem(68px);
- padding: var(--space-1) var(--space-3) var(--space-2);
- background-color: var(--bg-neutral-lightest);
+ padding: var(--fs-spacing-1) var(--fs-spacing-3) var(--fs-spacing-2);
+ background-color: var(--fs-color-neutral-0);
[data-element-variant="text"] {
min-width: rem(225px);
- min-height: var(--space-5);
+ min-height: var(--fs-spacing-5);
}
@include media(">=notebook") {
@@ -93,8 +93,8 @@
justify-content: center;
order: 2;
min-height: rem(45px);
- padding: var(--space-2) var(--space-3);
- background-color: var(--bg-neutral-light);
+ padding: var(--fs-spacing-2) var(--fs-spacing-3);
+ background-color: var(--fs-color-neutral-bkg);
@include media(">=notebook") {
grid-column: 4 /span 2;
@@ -111,11 +111,11 @@
}
.product-listing__results {
- --padding: var(--space-1);
+ --padding: var(--fs-spacing-1);
order: 3;
padding: var(--padding) var(--padding) 0;
- background-color: var(--bg-neutral-light);
+ background-color: var(--fs-color-neutral-bkg);
@include media(">=notebook") {
grid-column: 4 / span 9;
@@ -128,35 +128,35 @@
}
.product-listing__results-sponsored {
- margin: var(--space-1) calc(-1 * var(--padding));
- padding: var(--space-4) var(--space-3);
- background-color: var(--bg-neutral-lightest);
+ margin: var(--fs-spacing-1) calc(-1 * var(--padding));
+ padding: var(--fs-spacing-4) var(--fs-spacing-3);
+ background-color: var(--fs-color-neutral-0);
@include media(">=notebook") {
- margin: var(--space-6) 0;
+ margin: var(--fs-spacing-6) 0;
padding: 0;
[data-store-tiles] {
- column-gap: var(--grid-gap-0);
+ column-gap: var(--fs-grid-gap-0);
row-gap: 0;
}
}
- h3 { margin-bottom: var(--space-1); }
+ h3 { margin-bottom: var(--fs-spacing-1); }
}
.product-listing__pagination {
display: flex;
align-items: center;
justify-content: center;
- min-height: var(--space-13);
+ min-height: var(--fs-spacing-13);
margin-right: calc(-1 * var(--padding));
margin-left: calc(-1 * var(--padding));
- padding: var(--space-4);
- background-color: var(--bg-neutral-lightest);
+ padding: var(--fs-spacing-4);
+ background-color: var(--fs-color-neutral-0);
@include media(">=notebook") {
- padding: var(--space-1) var(--space-2);
+ padding: var(--fs-spacing-1) var(--fs-spacing-2);
}
&--top {
diff --git a/src/components/sections/ProductShelf/ProductShelf.tsx b/src/components/sections/ProductShelf/ProductShelf.tsx
index 13431f6de..8b800260f 100644
--- a/src/components/sections/ProductShelf/ProductShelf.tsx
+++ b/src/components/sections/ProductShelf/ProductShelf.tsx
@@ -20,14 +20,12 @@ function ProductShelf({
}: ProductShelfProps) {
return (
- {title}
-
+
{title}
+
-
+
{products.map((product, idx) => (
diff --git a/src/components/sections/ProductShelf/product-shelf.scss b/src/components/sections/ProductShelf/product-shelf.scss
index 517fcd8b3..6fc53d22b 100644
--- a/src/components/sections/ProductShelf/product-shelf.scss
+++ b/src/components/sections/ProductShelf/product-shelf.scss
@@ -1,19 +1,35 @@
@import "src/styles/scaffold";
-[data-product-shelf] {
+[data-product-shelf-items] {
display: flex;
align-items: stretch;
overflow-x: scroll;
li {
width: 100%;
- &:first-child { margin-left: calc(-1 * var(--space-1)); }
+ &:first-child { margin-left: calc(-1 * var(--fs-spacing-1)); }
}
@include media(">=tablet") {
- padding-top: var(--space-0);
- padding-bottom: var(--space-3);
+ padding-top: var(--fs-spacing-0);
+ padding-bottom: var(--fs-spacing-3);
overflow-x: auto;
- column-gap: var(--space-2);
+ column-gap: var(--fs-spacing-2);
}
}
+
+[data-product-shelf-content] {
+ min-height: 21.06rem;
+
+ @include media(">=notebook") {
+ margin-top: calc(-1 * var(--fs-spacing-0));
+ margin-bottom: calc(-1 * var(--fs-spacing-3));
+ }
+}
+
+.shelf__divisor { // TODO: Is it a part of the Section? If so, move this class.
+ padding-top: var(--fs-spacing-5);
+ border-top: 1px solid var(--fs-border-color-light);
+
+ @include media(">=notebook") { padding-top: var(--fs-spacing-9); }
+}
diff --git a/src/components/sections/ProductTiles/ProductTiles.tsx b/src/components/sections/ProductTiles/ProductTiles.tsx
index a05ed3f6f..4ece49879 100644
--- a/src/components/sections/ProductTiles/ProductTiles.tsx
+++ b/src/components/sections/ProductTiles/ProductTiles.tsx
@@ -30,9 +30,9 @@ const getRatio = (products: number, idx: number) => {
const ProductTiles = ({ products, title }: TilesProps) => {
return (
-
- {title}
-
+
+ {title}
+
=notebook") {
- padding-bottom: var(--space-8);
+ padding-bottom: var(--fs-spacing-8);
}
}
diff --git a/src/components/sections/Section/section.scss b/src/components/sections/Section/section.scss
index 3ea55728c..5d6f10ee4 100644
--- a/src/components/sections/Section/section.scss
+++ b/src/components/sections/Section/section.scss
@@ -5,7 +5,7 @@
content-visibility: auto;
contain-intrinsic-size: rem(2px) rem(1024px);
- .title-section {
- margin-bottom: var(--space-3);
+ .text__title-section {
+ margin-bottom: var(--fs-spacing-3);
}
}
diff --git a/src/components/skeletons/FilterSkeleton/filter-skeleton.scss b/src/components/skeletons/FilterSkeleton/filter-skeleton.scss
index ffffaa89b..58cc003dd 100644
--- a/src/components/skeletons/FilterSkeleton/filter-skeleton.scss
+++ b/src/components/skeletons/FilterSkeleton/filter-skeleton.scss
@@ -1,7 +1,7 @@
@import "src/styles/scaffold";
[data-store-filter-skeleton] {
- margin-top: var(--space-1);
+ margin-top: var(--fs-spacing-1);
@include media("=notebook") { min-width: 12rem; }
@@ -17,7 +17,7 @@
border: none;
@include media(">=notebook") {
- border: var(--border-width-0) solid var(--color-border-display);
+ border: var(--fs-border-width-default) solid var(--fs-border-color-light);
}
}
@@ -41,18 +41,18 @@
[data-product-card-skeleton-content] {
position: relative;
height: 20%;
- margin-top: var(--space-2);
+ margin-top: var(--fs-spacing-2);
- [data-element-variant="text"] { margin-bottom: var(--space-2); }
+ [data-element-variant="text"] { margin-bottom: var(--fs-spacing-2); }
- [data-element-variant="button"] { margin-top: var(--space-4); }
+ [data-element-variant="button"] { margin-top: var(--fs-spacing-4); }
[data-element-variant="badge"] {
min-width: 30%;
@include media(">=notebook") {
- min-height: var(--space-5);
- margin-top: var(--space-4);
+ min-height: var(--fs-spacing-5);
+ margin-top: var(--fs-spacing-4);
}
@include media(">=tablet") {
diff --git a/src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx b/src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx
index ab4291893..0fb984ee0 100644
--- a/src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx
+++ b/src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx
@@ -15,7 +15,7 @@ function ProductShelfSkeleton({
loading = true,
}: PropsWithChildren) {
return loading ? (
-
+
{Array.from({ length: ITEMS_PER_SECTION }, (_, index) => (
diff --git a/src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/product-tile-skeleton.scss b/src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/product-tile-skeleton.scss
index eb13ef4f1..920df215d 100644
--- a/src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/product-tile-skeleton.scss
+++ b/src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/product-tile-skeleton.scss
@@ -18,10 +18,10 @@
&[data-variant="horizontal"] {
[data-product-tile-skeleton-content] {
- background-color: var(--bg-neutral-light);
+ background-color: var(--fs-color-neutral-bkg);
@include media(">=tablet") {
- padding: var(--space-2) var(--space-3) var(--space-3);
+ padding: var(--fs-spacing-2) var(--fs-spacing-3) var(--fs-spacing-3);
}
}
}
@@ -29,7 +29,7 @@
[data-product-tile-skeleton-image] {
height: 60%;
min-height: 60%;
- border-radius: var(--border-radius-default) var(--border-radius-default) 0 0;
+ border-radius: var(--fs-border-radius-default) var(--fs-border-radius-default) 0 0;
@include media(">=tablet") {
height: 70%;
@@ -70,9 +70,9 @@
flex-direction: row;
align-items: flex-start;
height: 40%;
- padding: var(--space-3);
- border-bottom-right-radius: var(--border-radius-default);
- border-bottom-left-radius: var(--border-radius-default);
+ padding: var(--fs-spacing-3);
+ border-bottom-right-radius: var(--fs-border-radius-default);
+ border-bottom-left-radius: var(--fs-border-radius-default);
@include media(">=tablet") {
flex-flow: row wrap;
@@ -86,7 +86,7 @@
&[data-tile-index="1"] {
height: 20%;
- padding: var(--space-2) var(--space-3);
+ padding: var(--fs-spacing-2) var(--fs-spacing-3);
@include media(">=tablet") {
flex-flow: row wrap;
@@ -113,7 +113,7 @@
&[data-tile-index="3"] { width: 60%; }
}
- [data-element-variant="text"] { margin-bottom: var(--space-1); }
+ [data-element-variant="text"] { margin-bottom: var(--fs-spacing-1); }
[data-product-tile-skeleton-price] {
width: 60%;
@@ -124,27 +124,27 @@
[data-product-tile-skeleton-badge] {
position: absolute;
- right: var(--space-1);
+ right: var(--fs-spacing-1);
width: 20%;
@include media(">=tablet") { width: 20%; }
&[data-tile-index="2"],
&[data-tile-index="3"] {
- bottom: var(--space-2);
- left: var(--space-3);
+ bottom: var(--fs-spacing-2);
+ left: var(--fs-spacing-3);
width: 30%;
@include media(">=tablet") {
position: relative;
bottom: 0;
- left: var(--space-2);
+ left: var(--fs-spacing-2);
width: 50%;
}
@include media(">=notebook") {
position: absolute;
- right: var(--space-1);
+ right: var(--fs-spacing-1);
bottom: unset;
left: unset;
width: 30%;
@@ -153,16 +153,16 @@
[data-element-variant="badge"] {
width: 100%;
- height: var(--space-4);
+ height: var(--fs-spacing-4);
@include media(">=tablet") {
position: absolute;
- right: var(--space-1);
+ right: var(--fs-spacing-1);
}
@include media(">=notebook") {
position: relative;
- right: var(--space-0);
+ right: var(--fs-spacing-0);
}
}
}
diff --git a/src/components/skeletons/Shimmer/shimmer.scss b/src/components/skeletons/Shimmer/shimmer.scss
index d4d32c135..873079cfe 100644
--- a/src/components/skeletons/Shimmer/shimmer.scss
+++ b/src/components/skeletons/Shimmer/shimmer.scss
@@ -13,8 +13,8 @@
[data-shimmer] {
width: 50%;
height: 100%;
- background: var(--color-white-transparent-20);
- box-shadow: 0 0 var(--space-5) var(--space-5) var(--color-white-transparent-20);
+ background: rgb(255 255 255 / 20%);
+ box-shadow: 0 0 var(--fs-spacing-5) var(--fs-spacing-5) rgb(255 255 255 / 20%);
}
}
diff --git a/src/components/skeletons/SkeletonElement/skeleton-element.scss b/src/components/skeletons/SkeletonElement/skeleton-element.scss
index def2b1bdb..6392c6173 100644
--- a/src/components/skeletons/SkeletonElement/skeleton-element.scss
+++ b/src/components/skeletons/SkeletonElement/skeleton-element.scss
@@ -6,29 +6,29 @@
[data-skeleton-element-content] {
overflow: hidden;
- background: var(--bg-skeleton-loading);
- border-radius: var(--border-radius-default);
+ background: var(--fs-color-disabled-bkg);
+ border-radius: var(--fs-border-radius-default);
&[data-element-variant="text"] {
width: 100%;
- height: var(--space-4);
+ height: var(--fs-spacing-4);
}
&[data-element-variant="button"] {
- width: var(--space-13);
- min-height: var(--space-5);
- column-gap: var(--space-2);
- border-radius: var(--border-radius-button);
+ width: var(--fs-spacing-13);
+ min-height: var(--fs-spacing-5);
+ column-gap: var(--fs-spacing-2);
+ border-radius: var(--fs-border-radius-default);
}
&[data-element-variant="image"] {
- border-radius: var(--border-radius-default);
+ border-radius: var(--fs-border-radius-default);
}
&[data-element-variant="badge"] {
width: 40%;
- height: var(--space-5);
- border-radius: var(--border-radius-pill);
+ height: var(--fs-spacing-5);
+ border-radius: var(--fs-border-radius-pill);
}
}
}
diff --git a/src/components/ui/Accordion/AccordionItem.tsx b/src/components/ui/Accordion/AccordionItem.tsx
index 4afacf414..4de6abc46 100644
--- a/src/components/ui/Accordion/AccordionItem.tsx
+++ b/src/components/ui/Accordion/AccordionItem.tsx
@@ -38,7 +38,7 @@ const AccordionItem = forwardRef(function AccordionItem(
{...otherProps}
>
{buttonLabel}
diff --git a/src/components/ui/Accordion/accordion.scss b/src/components/ui/Accordion/accordion.scss
index a2e73e34d..19dc643a3 100644
--- a/src/components/ui/Accordion/accordion.scss
+++ b/src/components/ui/Accordion/accordion.scss
@@ -6,7 +6,7 @@
justify-content: space-around;
[data-accordion-item] {
- border-bottom: 1px solid var(--color-border-display);
+ border-bottom: 1px solid var(--fs-border-color-light);
@include media(">=notebook") {
&:last-child {
@@ -17,8 +17,8 @@
[data-accordion-panel] {
@include media(">=notebook") {
- padding-right: var(--space-4);
- padding-left: var(--space-4);
+ padding-right: var(--fs-spacing-4);
+ padding-left: var(--fs-spacing-4);
}
}
@@ -27,15 +27,15 @@
align-items: center;
justify-content: space-between;
width: 100%;
- padding: var(--space-3) 0;
- color: var(--color-text);
+ padding: var(--fs-spacing-3) 0;
+ color: var(--fs-color-text);
background-color: transparent;
border: 0;
cursor: pointer;
@include media(">=notebook") {
- padding-right: var(--space-4);
- padding-left: var(--space-4);
+ padding-right: var(--fs-spacing-4);
+ padding-left: var(--fs-spacing-4);
}
}
diff --git a/src/components/ui/Alert/alert.scss b/src/components/ui/Alert/alert.scss
index 525ccbd49..d2542d7f2 100644
--- a/src/components/ui/Alert/alert.scss
+++ b/src/components/ui/Alert/alert.scss
@@ -1,15 +1,15 @@
[data-store-alert] {
display: flex;
align-items: center;
- min-height: var(--space-7);
- padding-left: var(--space-3);
- color: var(--color-secondary-4);
- font-size: var(--text-size-1);
- background-color: var(--bg-primary-light);
+ min-height: var(--fs-spacing-7);
+ padding-left: var(--fs-spacing-3);
+ color: var(--fs-color-main-4);
+ font-size: var(--fs-text-size-1);
+ background-color: var(--fs-color-secondary-bkg-light);
[data-store-icon] {
margin: 0;
- padding-right: var(--space-1);
+ padding-right: var(--fs-spacing-1);
}
[data-alert-content] {
@@ -18,11 +18,11 @@
text-overflow: ellipsis;
}
- span { font-weight: var(--text-weight-bold); }
+ span { font-weight: var(--fs-text-weight-bold); }
[data-alert-link] {
- min-width: var(--space-8);
- min-height: var(--space-7);
+ min-width: var(--fs-spacing-8);
+ min-height: var(--fs-spacing-7);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
@@ -30,24 +30,24 @@
a {
display: inline-flex;
align-items: center;
- min-width: var(--space-7);
- min-height: var(--space-7);
- padding: 0 var(--space-1);
- color: var(--color-secondary-4);
- font-weight: var(--text-weight-bold);
+ min-width: var(--fs-spacing-7);
+ min-height: var(--fs-spacing-7);
+ padding: 0 var(--fs-spacing-1);
+ color: var(--fs-color-main-4);
+ font-weight: var(--fs-text-weight-bold);
- &:visited { color: var(--color-secondary-4); }
+ &:visited { color: var(--fs-color-main-4); }
}
}
[data-alert-button] {
- min-width: var(--space-7);
- min-height: var(--space-7);
+ min-width: var(--fs-spacing-7);
+ min-height: var(--fs-spacing-7);
margin-left: auto;
- color: var(--color-secondary-4);
+ color: var(--fs-color-main-4);
background-color: transparent;
border: none;
- &:hover { background-color: var(--bg-darken-hover); }
+ &:hover { background-color: rgb(0 0 0 / 5%); }
}
}
diff --git a/src/components/ui/Badge/badge.scss b/src/components/ui/Badge/badge.scss
index 715adbafb..4a333a504 100644
--- a/src/components/ui/Badge/badge.scss
+++ b/src/components/ui/Badge/badge.scss
@@ -4,59 +4,59 @@
align-items: stretch;
width: fit-content;
height: fit-content;
- color: var(--color-text);
- font-weight: var(--text-weight-bold);
- font-size: var(--text-size-2);
+ color: var(--fs-color-text);
+ font-weight: var(--fs-text-weight-bold);
+ font-size: var(--fs-text-size-2);
white-space: nowrap;
text-transform: uppercase;
- border-radius: var(--border-radius-pill);
+ border-radius: var(--fs-border-radius-pill);
> span {
- padding: var(--space-1) var(--space-2);
+ padding: var(--fs-spacing-1) var(--fs-spacing-2);
}
&[data-store-badge="small"] {
- font-size: var(--text-size-0);
+ font-size: var(--fs-text-size-0);
> span {
- padding: var(--space-0) var(--space-2);
+ padding: var(--fs-spacing-0) var(--fs-spacing-2);
}
}
[data-store-icon-button] {
- width: var(--tap-min-size);
+ width: var(--fs-control-tap-size);
height: auto;
- color: var(--color-neutral-7);
- border-top-right-radius: var(--border-radius-pill);
- border-bottom-right-radius: var(--border-radius-pill);
+ color: var(--fs-color-neutral-7);
+ border-top-right-radius: var(--fs-border-radius-pill);
+ border-bottom-right-radius: var(--fs-border-radius-pill);
&:hover, &:focus {
- background-color: var(--color-black-transparent-10);
+ background-color: rgb(0 0 0 / 10%);
background-blend-mode: multiply;
}
}
}
[data-store-badge-variant="neutral"] {
- background-color: var(--bg-neutral);
+ background-color: var(--fs-color-neutral-bkg);
}
[data-store-badge-variant="highlighted"] {
- background-color: var(--bg-highlighted);
+ background-color: var(--fs-color-highlight-bkg);
}
[data-store-badge-variant="info"] {
- background-color: var(--bg-info);
+ background-color: var(--fs-color-info-bkg);
}
[data-store-discount-badge-variant="low"] {
- background-color: var(--bg-discount-low);
+ background-color: var(--fs-color-success-bkg);
}
[data-store-discount-badge-variant="medium"] {
- background-color: var(--bg-discount-medium);
+ background-color: var(--fs-color-warning-bkg);
}
[data-store-discount-badge-variant="high"] {
- background-color: var(--bg-discount-high);
+ background-color: var(--fs-color-danger-bkg);
}
diff --git a/src/components/ui/Breadcrumb/breadcrumb.scss b/src/components/ui/Breadcrumb/breadcrumb.scss
index e0cb32cb7..f33f938e7 100644
--- a/src/components/ui/Breadcrumb/breadcrumb.scss
+++ b/src/components/ui/Breadcrumb/breadcrumb.scss
@@ -18,7 +18,7 @@
&:not(:first-child) {
display: inline;
- min-width: var(--space-7);
+ min-width: var(--fs-spacing-7);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
@@ -35,14 +35,14 @@
text-overflow: ellipsis;
svg {
- color: var(--color-text);
+ color: var(--fs-color-text);
}
}
[data-breadcrumb-divider] {
- height: var(--space-3);
- margin: 0 var(--space-2) 0 var(--space-1);
- border-left: var(--border-width-0) solid var(--color-border-display);
+ height: var(--fs-spacing-3);
+ margin: 0 var(--fs-spacing-2) 0 var(--fs-spacing-1);
+ border-left: var(--fs-border-width-default) solid var(--fs-border-color-light);
}
[data-store-link] {
@@ -50,12 +50,12 @@
padding: 0;
&:visited {
- color: var(--color-link);
+ color: var(--fs-color-link);
}
}
[data-breadcrumb-item="current"] {
- color: var(--color-text-disabled);
+ color: var(--fs-color-text-light);
}
}
}
diff --git a/src/components/ui/Button/buttons.scss b/src/components/ui/Button/buttons.scss
index 2fdc40ba5..52c02bef6 100644
--- a/src/components/ui/Button/buttons.scss
+++ b/src/components/ui/Button/buttons.scss
@@ -1,7 +1,7 @@
-@import "../../../styles/utilities";
+@import "src/styles/scaffold";
[data-store-button] {
- border-radius: var(--border-radius-button);
+ border-radius: var(--fs-border-radius-default);
transition: background-color .5s ease, box-shadow .5s ease;
@include focus-ring-visible;
@@ -11,89 +11,89 @@
display: inline-flex;
align-items: center;
justify-content: center;
- min-height: var(--tap-min-size);
- padding: var(--space-1) var(--space-3);
- font-weight: var(--text-weight-bold);
+ min-height: var(--fs-control-tap-size);
+ padding: var(--fs-spacing-1) var(--fs-spacing-3);
+ font-weight: var(--fs-text-weight-bold);
text-decoration: none;
- column-gap: var(--space-2);
+ column-gap: var(--fs-spacing-2);
border: 0;
cursor: default;
&:disabled, &[data-button-disabled="true"] {
cursor: not-allowed;
- svg { color: var(--color-neutral-5); }
+ svg { color: var(--fs-color-neutral-5); }
}
&[data-button-variant="primary"] {
- color: var(--color-text-inverse);
- background-color: var(--bg-secondary-default);
+ color: var(--fs-color-text-inverse);
+ background-color: var(--fs-color-primary-bkg);
- &:hover, &:focus { background-color: var(--bg-secondary-hover); }
+ &:hover, &:focus { background-color: var(--fs-color-primary-bkg-hover); }
- &:active { background-color: var(--bg-secondary-pressed); }
+ &:active { background-color: var(--fs-color-primary-bkg-active); }
&[data-button-inverse] {
- color: var(--color-text-display);
- background-color: var(--bg-neutral-lightest);
+ color: var(--fs-color-text-display);
+ background-color: var(--fs-color-neutral-0);
- &:hover, &:focus { background-color: var(--color-secondary-0); }
+ &:hover, &:focus { background-color: var(--fs-color-main-0); }
- &:active { background-color: var(--color-secondary-1); }
+ &:active { background-color: var(--fs-color-main-1); }
}
}
&[data-button-variant="secondary"] {
- color: var(--color-text-display);
+ color: var(--fs-color-text-display);
background-color: transparent;
- border: var(--border-width-1) solid var(--bg-secondary-default);
+ border: var(--fs-border-width-thick) solid var(--fs-color-primary-bkg);
&:hover, &:focus {
- color: var(--color-text-inverse);
- background-color: var(--bg-secondary-default);
+ color: var(--fs-color-text-inverse);
+ background-color: var(--fs-color-primary-bkg);
}
&:active {
- background-color: var(--bg-secondary-hover);
- border-color: var(--bg-secondary-hover);
+ background-color: var(--fs-color-primary-bkg-hover);
+ border-color: var(--fs-color-primary-bkg-hover);
}
&[data-button-inverse] {
- color: var(--color-text-inverse);
- border-color: var(--color-border-light);
+ color: var(--fs-color-text-inverse);
+ border-color: var(--fs-color-border-light);
&:hover, &:focus {
- color: var(--color-text-display);
- background-color: var(--bg-neutral-lightest);
+ color: var(--fs-color-text-display);
+ background-color: var(--fs-color-neutral-0);
}
- &:active { background-color: var(--bg-secondary-light); }
+ &:active { background-color: var(--fs-color-primary-bkg-light); }
}
}
&[data-button-variant="tertiary"] {
- color: var(--color-link);
- background-color: var(--bg-neutral-lightest);
+ color: var(--fs-color-link);
+ background-color: var(--fs-color-neutral-0);
- &:hover, &:focus { background-color: var(--bg-secondary-light); }
+ &:hover, &:focus { background-color: var(--fs-color-primary-bkg-light); }
&:active {
- color: var(--color-text-display);
- background-color: var(--color-secondary-1);
+ color: var(--fs-color-text-display);
+ background-color: var(--fs-color-main-1);
}
&[data-button-inverse] {
- color: var(--color-text-display);
- background-color: var(--bg-neutral-lightest);
+ color: var(--fs-color-text-display);
+ background-color: var(--fs-color-neutral-0);
- &:hover, &:focus { background-color: var(--color-secondary-0); }
+ &:hover, &:focus { background-color: var(--fs-color-main-0); }
- &:active { background-color: var(--color-secondary-1); }
+ &:active { background-color: var(--fs-color-main-1); }
}
}
&[data-button-variant] {
&:disabled, &[data-button-disabled="true"] {
- color: var(--color-text-disabled);
- background-color: var(--bg-disabled);
+ color: var(--fs-color-disabled-text);
+ background-color: var(--fs-color-disabled-bkg);
border: 0;
}
}
diff --git a/src/components/ui/BuyButton/buy-button.scss b/src/components/ui/BuyButton/buy-button.scss
index 4fca30e7c..9dd007650 100644
--- a/src/components/ui/BuyButton/buy-button.scss
+++ b/src/components/ui/BuyButton/buy-button.scss
@@ -1,15 +1,15 @@
@import "../Button/buttons";
.button[data-store-buy-button] {
- color: var(--color-text-inverse);
- background-color: var(--bg-primary-default);
+ color: var(--fs-color-text-inverse);
+ background-color: var(--fs-color-secondary-bkg);
- &:hover { background-color: var(--bg-primary-hover); }
+ &:hover { background-color: var(--fs-color-secondary-bkg-hover); }
- &:active { background-color: var(--bg-primary-pressed); }
+ &:active { background-color: var(--fs-color-secondary-bkg-active); }
&:disabled {
- color: var(--color-neutral-6);
- background-color: var(--bg-disabled);
+ color: var(--fs-color-neutral-6);
+ background-color: var(--fs-color-disabled-bkg);
}
}
diff --git a/src/components/ui/Checkbox/checkbox.scss b/src/components/ui/Checkbox/checkbox.scss
index c661dd219..6a52038a5 100644
--- a/src/components/ui/Checkbox/checkbox.scss
+++ b/src/components/ui/Checkbox/checkbox.scss
@@ -7,8 +7,8 @@
justify-content: center;
width: rem(20px);
height: rem(20px);
- border: var(--border-width-0) solid var(--color-border-input);
- border-radius: var(--border-radius-default);
+ border: var(--fs-border-width-default) solid var(--fs-border-color-default);
+ border-radius: var(--fs-border-radius-default);
outline: none;
cursor: pointer;
transition: border .2s ease, background-color .2s ease, box-shadow .2s ease;
@@ -21,24 +21,24 @@
top: rem(3px);
width: rem(6px);
height: rem(10px);
- border: var(--border-width-1) solid var(--bg-neutral-lightest);
+ border: var(--fs-border-width-thick) solid var(--fs-color-neutral-0);
border-top: 0;
border-left: 0;
- border-radius: var(--border-width-0);
+ border-radius: var(--fs-border-width-default);
transform: rotate(45deg);
opacity: 0;
content: "";
}
&:hover {
- background-color: var(--bg-secondary-light);
- border-color: var(--color-text);
- box-shadow: 0 0 0 var(--border-width-0) var(--color-border-input-selected);
+ background-color: var(--fs-color-primary-bkg-light);
+ border-color: var(--fs-color-text);
+ box-shadow: 0 0 0 var(--fs-border-width-default) var(--fs-border-color-default-active);
}
&:checked {
- background-color: var(--bg-secondary-dark);
- border-color: var(--color-border-input-selected);
+ background-color: var(--fs-color-primary-bkg);
+ border-color: var(--fs-border-color-default-active);
border-width: 0;
&::before {
@@ -46,14 +46,14 @@
}
&:hover {
- background-color: var(--bg-secondary-hover);
+ background-color: var(--fs-color-primary-bkg-hover);
box-shadow: none;
}
}
&[data-store-checkbox-partial="true"] {
- background-color: var(--bg-neutral-lightest);
- border: var(--border-width-0) solid var(--bg-secondary-dark);
+ background-color: var(--fs-color-neutral-0);
+ border: var(--fs-border-width-default) solid var(--fs-color-primary-bkg);
&::before {
position: absolute;
@@ -61,8 +61,8 @@
width: rem(10px);
height: 0;
border-width: 0;
- border-bottom: var(--border-width-1) solid var(--bg-secondary-dark);
- border-radius: var(--border-width-0);
+ border-bottom: var(--fs-border-width-thick) solid var(--fs-color-primary-bkg);
+ border-radius: var(--fs-border-width-default);
transform: rotate(0deg);
opacity: 1;
content: "";
@@ -70,35 +70,35 @@
&:checked {
&:hover {
- background-color: var(--bg-secondary-light);
+ background-color: var(--fs-color-primary-bkg-light);
}
}
&:hover {
- background-color: var(--bg-secondary-light);
+ background-color: var(--fs-color-primary-bkg-light);
}
}
&:disabled {
- background-color: var(--bg-disabled);
- border: var(--border-width-0) solid var(--color-border-input-disabled);
+ background-color: var(--fs-color-disabled-bkg);
+ border: var(--fs-border-width-default) solid var(--fs-border-color-default-disabled);
cursor: not-allowed;
&::before {
- border-color: var(--color-border-input-disabled);
+ border-color: var(--fs-border-color-default-disabled);
}
&:hover {
- background-color: var(--bg-disabled);
- border: var(--border-width-0) solid var(--color-border-input-disabled);
+ background-color: var(--fs-color-disabled-bkg);
+ border: var(--fs-border-width-default) solid var(--fs-border-color-default-disabled);
&::before {
- border-color: var(--color-border-input-disabled);
+ border-color: var(--fs-border-color-default-disabled);
}
}
+ label {
- color: var(--color-text-disabled);
+ color: var(--fs-color-disabled-text);
}
}
}
diff --git a/src/components/ui/EmptyState/empty-state.scss b/src/components/ui/EmptyState/empty-state.scss
index f293d9e8c..03e529389 100644
--- a/src/components/ui/EmptyState/empty-state.scss
+++ b/src/components/ui/EmptyState/empty-state.scss
@@ -6,15 +6,15 @@
justify-content: center;
height: 100%;
min-height: 50vh;
- margin: var(--space-3) 0;
- padding: 0 var(--space-8);
- background-color: var(--bg-neutral);
- border-radius: var(--border-radius-default);
- row-gap: var(--space-3);
+ margin: var(--fs-spacing-3) 0;
+ padding: 0 var(--fs-spacing-8);
+ background-color: var(--fs-color-neutral-bkg);
+ border-radius: var(--fs-border-radius-default);
+ row-gap: var(--fs-spacing-3);
- @include media(">=tablet") {
+ @include media(">=notebook") {
align-items: center;
- margin: var(--space-5) 0;
+ margin: var(--fs-spacing-5) 0;
}
> header {
@@ -22,12 +22,12 @@
flex-direction: column;
align-items: center;
justify-content: center;
- margin-bottom: var(--space-2);
- color: var(--color-text-disabled);
- row-gap: var(--space-1);
+ margin-bottom: var(--fs-spacing-2);
+ color: var(--fs-color-disabled-text);
+ row-gap: var(--fs-spacing-1);
p {
- font-size: var(--text-size-3);
+ font-size: var(--fs-text-size-3);
text-align: center;
}
}
diff --git a/src/components/ui/Hero/hero.scss b/src/components/ui/Hero/hero.scss
index ebcf07e6b..0cf8d070e 100644
--- a/src/components/ui/Hero/hero.scss
+++ b/src/components/ui/Hero/hero.scss
@@ -4,114 +4,139 @@
display: flex;
flex-direction: column-reverse;
width: 100%;
- background-color: var(--bg-secondary-default);
+ background-color: var(--fs-color-primary-bkg);
@include media(">=tablet") {
position: relative;
flex-direction: row;
justify-content: flex-end;
}
+}
- [data-hero-content] {
+[data-hero-content] {
+ width: 100%;
+ padding: var(--fs-spacing-5) 0 var(--fs-spacing-6);
+ color: var(--fs-color-text-inverse);
+
+ @include media(">=tablet") {
width: 100%;
- padding: var(--space-5) 0 var(--space-6);
- color: var(--color-text-inverse);
+ height: 100%;
+ }
- @include media(">=tablet") {
- width: 100%;
- height: 100%;
- }
+ p {
+ margin-top: var(--fs-spacing-2);
+
+ @include media(">=tablet") { margin-top: var(--fs-spacing-4); }
+ }
- .hero-content-wrapper {
- display: flex;
- gap: var(--space-3);
+ [data-hero-link] {
+ margin-top: var(--fs-spacing-6);
+
+ a {
justify-content: space-between;
+ width: 11.25rem;
+ }
+ }
+}
- @include media(">=tablet", "=tablet") { gap: var(--space-1); }
+ @include media(">=tablet", "=notebook") { justify-content: flex-start; }
- }
+ @include media(">=tablet") { gap: var(--fs-spacing-1); }
- .hero-content-info {
- @include media(">=notebook") { width: 42%; }
- }
+ @include media(">=notebook") { justify-content: flex-start; }
+}
- p {
- margin-top: var(--space-2);
+[data-hero-info] {
+ @include media(">=notebook") { width: 42%; }
+}
- @include media(">=tablet") { margin-top: var(--space-4); }
- }
+[data-hero-image] {
+ [data-gatsby-image-wrapper] {
+ width: 100%;
+ height: 100%;
+ }
- [data-hero-link] {
- margin-top: var(--space-6);
+ @include media(">=tablet") {
+ position: absolute;
+ right: 0;
+ height: 100%;
+ overflow: hidden;
+ }
+}
- a {
- justify-content: space-between;
- width: 11.25rem;
- }
- }
+[data-hero-variant="default"] {
+ @include media(">=tablet") { min-height: 18.75rem; }
+
+ h1 {
+ font-weight: var(--fs-text-weight-black);
+ font-size: var(--fs-text-size-5);
+ line-height: 1.1;
+
+ @include media(">=tablet") { font-size: var(--fs-text-size-7); }
}
- [data-hero-image] {
- [data-gatsby-image-wrapper] {
- width: 100%;
- height: 100%;
- }
+ [data-hero-content] {
+ @include media(">=tablet") { padding: var(--fs-spacing-9) 0; }
+ }
+ [data-hero-info] {
+ @include media(">=tablet") { padding-right: var(--fs-spacing-9); }
+ }
+
+ [data-hero-link] a {
@include media(">=tablet") {
- position: absolute;
- right: 0;
- height: 100%;
- overflow: hidden;
+ margin-top: var(--fs-spacing-8);
+ padding: var(--fs-spacing-2) var(--fs-spacing-4);
}
}
- &[data-hero-variant="default"] {
- @include media(">=tablet") { min-height: 18.75rem; }
+ [data-hero-image] {
+ @include media("=tablet") { padding: var(--space-9) 0; }
- }
+ @include media(">=tablet") { width: 53%; }
+ }
+}
- .hero-content-info {
- @include media(">=tablet") { padding-right: var(--space-9); }
- }
+[data-hero-variant="small"] {
+ @include media(">=tablet") { min-height: 14.18rem; }
- [data-hero-link] a {
- @include media(">=tablet") {
- margin-top: var(--space-8);
- padding: var(--space-2) var(--space-4);
- }
- }
+ h1 {
+ font-weight: var(--fs-text-weight-black);
+ font-size: var(--fs-text-size-5);
+ line-height: 1.1;
+
+ @include media(">=tablet") { font-size: var(--fs-text-size-6); }
+ }
- [data-hero-image] {
- @include media("=tablet") { width: 53%; }
+ @include media(">=tablet") {
+ padding: var(--fs-spacing-5) 0;
}
}
- &[data-hero-variant="small"] {
- @include media(">=tablet") { min-height: 14.18rem; }
-
- [data-hero-content] {
- padding: var(--space-4) 0 var(--space-3);
+ [data-hero-image] {
+ @include media("=tablet") {
- padding: var(--space-5) 0;
- }
- }
+ @include media(">=tablet") { width: 50%; }
+ }
+}
- [data-hero-image] {
- @include media("=tablet") { width: 50%; }
- }
+ @include media(">=notebook") {
+ font-size: var(--fs-text-size-3);
}
}
diff --git a/src/components/ui/IconButton/icon-button.scss b/src/components/ui/IconButton/icon-button.scss
index 6f82a0771..c2634ff17 100644
--- a/src/components/ui/IconButton/icon-button.scss
+++ b/src/components/ui/IconButton/icon-button.scss
@@ -4,12 +4,12 @@
display: flex;
align-items: center;
justify-content: center;
- width: var(--tap-min-size);
- height: var(--tap-min-size);
- color: var(--color-text);
+ width: var(--fs-control-tap-size);
+ height: var(--fs-control-tap-size);
+ color: var(--fs-color-text);
background-color: transparent;
border: 0;
- border-radius: var(--border-radius-button);
+ border-radius: var(--fs-border-radius-default);
transition: background-color .5s ease;
span {
@@ -20,15 +20,15 @@
@include focus-ring-visible;
- &:hover, &:focus { background-color: var(--bg-secondary-light); }
+ &:hover, &:focus { background-color: var(--fs-color-primary-bkg-light); }
&:active {
- color: var(--color-text-display);
- background-color: var(--color-secondary-1);
+ color: var(--fs-color-text-display);
+ background-color: var(--fs-color-main-1);
}
&:disabled, &[data-button-disabled="true"] {
- color: var(--color-text-disabled);
- background-color: var(--bg-disabled);
+ color: var(--fs-color-disabled-text);
+ background-color: var(--fs-color-disabled-bkg);
}
}
diff --git a/src/components/ui/Link/link.scss b/src/components/ui/Link/link.scss
index c930ce9d6..87fe53b65 100644
--- a/src/components/ui/Link/link.scss
+++ b/src/components/ui/Link/link.scss
@@ -1,7 +1,7 @@
@import "src/styles/scaffold";
a, [data-store-link] {
- border-radius: var(--border-radius-default);
+ border-radius: var(--fs-border-radius-default);
transition: box-shadow .5s ease;
@include focus-ring-visible;
@@ -10,23 +10,23 @@ a, [data-store-link] {
[data-store-link] {
min-width: auto;
min-height: auto;
- padding: var(--space-2) var(--space-0);
+ padding: var(--fs-spacing-2) var(--fs-spacing-0);
text-decoration: none;
&:hover { text-decoration: underline; }
- &:visited { color: var(--color-link-visited); }
+ &:visited { color: var(--fs-color-link-visited); }
}
// Links ////////////////////////////
[data-link-variant="default"] {
- color: var(--color-link);
+ color: var(--fs-color-link);
line-height: 1.5;
}
[data-link-variant="display"] {
- color: var(--color-text-display);
+ color: var(--fs-color-text-display);
line-height: 1.5;
- &:visited { color: var(--color-text-display); }
+ &:visited { color: var(--fs-color-text-display); }
}
[data-link-variant="inline"] {
@@ -36,13 +36,13 @@ a, [data-store-link] {
}
[data-link-variant="footer"] {
- color: var(--color-text);
- font-size: var(--text-size-1);
+ color: var(--fs-color-text);
+ font-size: var(--fs-text-size-1);
- @include media(">=notebook") { padding: var(--space-1) var(--space-0); }
+ @include media(">=notebook") { padding: var(--fs-spacing-1) var(--fs-spacing-0); }
}
[data-link-inverse] {
- color: var(--color-link-inverse);
- &:visited { color: var(--color-link-inverse); }
+ color: var(--fs-color-link-inverse);
+ &:visited { color: var(--fs-color-link-inverse); }
}
diff --git a/src/components/ui/Price/price.scss b/src/components/ui/Price/price.scss
index 0e77e8ae0..0057f96b5 100644
--- a/src/components/ui/Price/price.scss
+++ b/src/components/ui/Price/price.scss
@@ -1,11 +1,11 @@
.price[data-store-price] {
&[data-variant="listing"] {
text-decoration-line: line-through;
- color: var(--color-text-subtle);
+ color: var(--fs-color-text-light);
}
&[data-variant="spot"] {
- margin-left: var(--space-1);
- font-weight: var(--text-weight-bold);
+ margin-left: var(--fs-spacing-1);
+ font-weight: var(--fs-text-weight-bold);
}
}
diff --git a/src/components/ui/ProductTitle/ProductTitle.tsx b/src/components/ui/ProductTitle/ProductTitle.tsx
index e54fcb017..46ddb3ac5 100644
--- a/src/components/ui/ProductTitle/ProductTitle.tsx
+++ b/src/components/ui/ProductTitle/ProductTitle.tsx
@@ -27,7 +27,7 @@ function ProductTitle({ title, label, refNumber }: ProductTitleProp) {
{refNumber && (
-
+
Ref.: {refNumber}
)}
diff --git a/src/components/ui/ProductTitle/product-title.scss b/src/components/ui/ProductTitle/product-title.scss
index 4399d1848..fc916ed6f 100644
--- a/src/components/ui/ProductTitle/product-title.scss
+++ b/src/components/ui/ProductTitle/product-title.scss
@@ -1,21 +1,21 @@
@import "src/styles/scaffold";
.product-title {
- @include media(">=tablet") { padding: var(--space-4) var(--space-5); }
+ @include media(">=tablet") { padding: var(--fs-spacing-4) var(--fs-spacing-5); }
}
.product-title__header {
display: flex;
justify-content: space-between;
- column-gap: var(--space-2);
+ column-gap: var(--fs-spacing-2);
[data-store-badge] { white-space: nowrap; }
@include media(">=tablet", "
=notebook") { height: var(--space-6); }
+ @include media(">=notebook") { height: var(--fs-spacing-6); }
}
svg {
position: absolute;
- right: var(--space-2);
- color: var(--color-link);
+ right: var(--fs-spacing-2);
+ color: var(--fs-color-link);
pointer-events: none;
}
}
diff --git a/src/components/ui/SignInLink/SignInLink.tsx b/src/components/ui/SignInLink/SignInLink.tsx
index 46c5fb949..ad227379c 100644
--- a/src/components/ui/SignInLink/SignInLink.tsx
+++ b/src/components/ui/SignInLink/SignInLink.tsx
@@ -11,7 +11,7 @@ const SignInLink: React.FC = () => {
diff --git a/src/components/ui/SkuSelector/sku-selector.scss b/src/components/ui/SkuSelector/sku-selector.scss
index 03fea6d74..9d9f18b9b 100644
--- a/src/components/ui/SkuSelector/sku-selector.scss
+++ b/src/components/ui/SkuSelector/sku-selector.scss
@@ -5,8 +5,8 @@
@supports (-webkit-appearance:none) {
// Use `focus` instead of `focus-visible` due to Safari's lack of support
&:focus + span {
- border-color: var(--color-border-input-selected);
- border-width: var(--border-width-1);
+ border-color: var(--fs-border-color-default-active);
+ border-width: var(--fs-border-width-thick);
@include focus-ring;
}
@@ -14,8 +14,8 @@
}
&:focus-visible + span {
- border-color: var(--color-border-input-selected);
- border-width: var(--border-width-1);
+ border-color: var(--fs-border-color-default-active);
+ border-width: var(--fs-border-width-thick);
@include focus-ring;
}
@@ -24,19 +24,19 @@
[data-store-sku-selector] {
display: flex;
flex-wrap: wrap;
- font-size: var(--text-size-1);
- column-gap: var(--space-1);
- row-gap: var(--space-1);
+ font-size: var(--fs-text-size-1);
+ column-gap: var(--fs-spacing-1);
+ row-gap: var(--fs-spacing-1);
[data-sku-selector-label] {
width: 100%;
- margin-bottom: var(--space-0);
+ margin-bottom: var(--fs-spacing-0);
}
[data-store-radio-option] {
position: relative;
- width: var(--space-7);
- height: var(--space-7);
+ width: var(--fs-spacing-7);
+ height: var(--fs-spacing-7);
span {
position: relative;
@@ -45,8 +45,8 @@
justify-content: center;
width: 100%;
height: 100%;
- border: var(--border-width-0) solid var(--color-neutral-7);
- border-radius: var(--border-radius-default);
+ border: var(--fs-border-width-default) solid var(--fs-color-neutral-7);
+ border-radius: var(--fs-border-radius-default);
box-shadow: 0;
transition: box-shadow .2s ease, background-color .2s ease;
}
@@ -61,14 +61,14 @@
@include sku-selector-focus-ring;
&:hover:not(:disabled):not(:checked) + span {
- border-color: var(--color-border-input-selected);
- border-width: var(--border-width-1);
+ border-color: var(--fs-border-color-default-active);
+ border-width: var(--fs-border-width-thick);
}
&:checked + span {
- border-color: var(--color-border-input-selected);
- border-width: var(--border-width-1);
- box-shadow: 0 0 0 var(--border-width-2) var(--bg-selected-outline);
+ border-color: var(--fs-border-color-default-active);
+ border-width: var(--fs-border-width-thick);
+ box-shadow: 0 0 0 var(--fs-border-width-thickest) var(--fs-color-focus-ring-outline);
}
&:disabled {
@@ -76,14 +76,14 @@
+ span {
overflow: hidden;
- color: var(--color-text-disabled);
- border-color: var(--color-border-input-disabled);
+ color: var(--fs-color-disabled-text);
+ border-color: var(--fs-border-color-default-disabled);
&::after {
position: absolute;
- width: var(--border-width-0);
+ width: var(--fs-border-width-default);
height: 160%;
- background-color: var(--color-border-input-disabled);
+ background-color: var(--fs-border-color-default-disabled);
transform: rotate(45deg);
transform-origin: center;
content: "";
@@ -94,15 +94,15 @@
}
&[data-variant="label"] input {
- &:hover:not(:disabled) + span { background-color: var(--bg-secondary-light); }
- &:checked + span { background-color: var(--bg-secondary-light); }
+ &:hover:not(:disabled) + span { background-color: var(--fs-color-primary-bkg-light); }
+ &:checked + span { background-color: var(--fs-color-primary-bkg-light); }
}
&[data-variant="color"] {
[data-sku-selector-color] {
- width: var(--space-6);
- height: var(--space-6);
- border-radius: var(--border-radius-small);
+ width: var(--fs-spacing-6);
+ height: var(--fs-spacing-6);
+ border-radius: var(--fs-border-radius-small);
transform-origin: center center;
transition: transform .2s ease;
}
diff --git a/src/components/ui/SlideOver/slide-over.scss b/src/components/ui/SlideOver/slide-over.scss
index 3ccaae16d..4d67c1359 100644
--- a/src/components/ui/SlideOver/slide-over.scss
+++ b/src/components/ui/SlideOver/slide-over.scss
@@ -7,13 +7,13 @@
bottom: 0;
left: 0;
z-index: 3;
- background-color: var(--color-black-transparent-20);
+ background-color: rgb(0 0 0 / 20%);
}
[data-slide-over] {
position: fixed;
height: 100vh;
- background-color: var(--bg-neutral-lightest);
+ background-color: var(--fs-color-neutral-0);
}
[data-slide-over-size="full"] {
@@ -27,7 +27,7 @@
@include media(">=notebook") {
width: calc(100% / 3);
- max-width: calc(var(--breakpoint-notebook) / 3);
+ max-width: calc(var(--fs-grid-breakpoint-notebook) / 3);
}
}
diff --git a/src/components/ui/Tiles/tiles.scss b/src/components/ui/Tiles/tiles.scss
index 6069b3d6c..3fe4559bd 100644
--- a/src/components/ui/Tiles/tiles.scss
+++ b/src/components/ui/Tiles/tiles.scss
@@ -4,20 +4,20 @@
display: grid;
grid-template-rows: repeat(2, 1fr);
grid-template-columns: repeat(2, 1fr);
- column-gap: var(--grid-gap-0);
- row-gap: var(--grid-gap-0);
+ column-gap: var(--fs-grid-gap-0);
+ row-gap: var(--fs-grid-gap-0);
@include media(">=tablet") {
grid-template-rows: repeat(1, 1fr);
grid-template-columns: repeat(4, 1fr);
- column-gap: var(--grid-gap-1);
+ column-gap: var(--fs-grid-gap-1);
}
}
[data-tile] {
min-width: 9rem;
height: 24rem;
- border-radius: var(--border-radius-default);
+ border-radius: var(--fs-border-radius-default);
.product-card[data-store-card] {
width: 100%;
@@ -31,7 +31,7 @@
@media (hover: hover) {
&:hover {
outline: none;
- box-shadow: var(--box-shadow-dark);
+ box-shadow: var(--fs-shadow-darker);
img {
transform: scale(1.03);
@@ -48,7 +48,7 @@
&[data-card-variant="horizontal"] {
[data-store-card-content] {
- @include media(">=tablet") { padding: var(--space-2) var(--space-3) var(--space-3); }
+ @include media(">=tablet") { padding: var(--fs-spacing-2) var(--fs-spacing-3) var(--fs-spacing-3); }
}
.product-card__heading {
@@ -64,7 +64,7 @@
[data-card-image] {
height: 60%;
overflow: hidden;
- border-radius: var(--border-radius-default) var(--border-radius-default) 0 0;
+ border-radius: var(--fs-border-radius-default) var(--fs-border-radius-default) 0 0;
@include media(">=tablet") { height: 70%; }
@@ -75,14 +75,14 @@
flex-direction: column;
align-items: flex-start;
height: 40%;
- padding: var(--space-2);
- border-bottom-right-radius: var(--border-radius-default);
- border-bottom-left-radius: var(--border-radius-default);
+ padding: var(--fs-spacing-2);
+ border-bottom-right-radius: var(--fs-border-radius-default);
+ border-bottom-left-radius: var(--fs-border-radius-default);
@include media(">=tablet") {
flex-flow: row wrap;
height: 30%;
- padding: var(--space-3);
+ padding: var(--fs-spacing-3);
}
@include media(">=notebook") { height: 20%; }
diff --git a/src/styles/colors.scss b/src/styles/colors.scss
deleted file mode 100644
index 7a943cd7d..000000000
--- a/src/styles/colors.scss
+++ /dev/null
@@ -1,62 +0,0 @@
-// Semantical Color Tokens ////////////////
-
-:root {
- --color-emphasis: #8db6fa;
- --color-emphasis-transparent-80: #8db6fa80;
- --color-visited: #6058ba;
-
- --color-black-transparent-5: rgb(0 0 0 / 5%);
- --color-black-transparent-10: rgb(0 0 0 / 10%);
- --color-black-transparent-20: rgb(0 0 0 / 20%);
- --color-white-transparent-10: rgb(255 255 255 / 10%);
- --color-white-transparent-20: rgb(255 255 255 / 20%);
-
- // Text
- --color-link: var(--color-secondary-2);
- --color-link-visited: var(--color-visited);
- --color-link-inverse: var(--color-neutral-0);
- --color-text-disabled: var(--color-neutral-6);
- --color-text-display: var(--color-secondary-4);
- --color-text-subtle: var(--color-neutral-6);
- --color-text-success: var(--color-success-dark);
-
- // Backgrounds – Interactions
- --bg-primary-default: var(--color-primary-3);
- --bg-primary-hover: var(--color-primary-2);
- --bg-primary-pressed: var(--color-primary-1);
-
- --bg-secondary-default: var(--color-secondary-4);
- --bg-secondary-hover: var(--color-secondary-3);
- --bg-secondary-pressed: var(--color-secondary-2);
-
- --bg-darken-hover: var(--color-black-transparent-5);
- --bg-darken-pressed: var(--color-black-transparent-10);
-
- --bg-lighten-hover: var(--color-white-transparent-10);
- --bg-lighten-pressed: var(--color-white-transparent-20);
-
- --bg-disabled: var(--color-neutral-2);
- --bg-focus-ring: var(--color-emphasis);
- --bg-selected-outline: var(--color-emphasis-transparent-80);
- --bg-skeleton-loading: var(--bg-disabled);
-
- // Backgrounds – Contextual
- --bg-success: var(--color-success);
- --bg-highlighted: var(--color-primary-0);
- --bg-info: var(--color-secondary-1);
- --bg-neutral: var(--color-neutral-1);
- --bg-warning: var(--color-warning);
- --bg-error: var(--color-error);
-
- // Backgrounds – Discount range
- --bg-discount-low: var(--bg-success);
- --bg-discount-medium: var(--bg-warning);
- --bg-discount-high: var(--bg-error);
-
- // Borders
- --color-border-light: var(--color-neutral-0);
- --color-border-display: var(--color-neutral-3);
- --color-border-input: var(--color-neutral-4);
- --color-border-input-selected: var(--color-secondary-2);
- --color-border-input-disabled: var(--color-neutral-6);
-}
diff --git a/src/styles/global/layout.scss b/src/styles/global/layout.scss
new file mode 100644
index 000000000..e3fa92911
--- /dev/null
+++ b/src/styles/global/layout.scss
@@ -0,0 +1,75 @@
+// ----------------------------------------------------------
+// GLOBAL STYLES
+// Layout
+// ----------------------------------------------------------
+
+@import "src/styles/scaffold";
+
+body {
+ min-height: 100vh;
+ color: var(--fs-color-text);
+ background-color: var(--fs-color-body-bkg);
+}
+
+main,
+.layout__main {
+ display: flex;
+ flex-wrap: wrap;
+ background-color: var(--fs-color-body-bkg);
+}
+
+.layout__section {
+ margin-top: var(--fs-spacing-4);
+ margin-bottom: var(--fs-spacing-4);
+
+ @include media(">=notebook") {
+ margin-top: var(--fs-grid-padding);
+ margin-bottom: var(--fs-grid-padding);
+ }
+}
+
+.layout__content-full {
+ width: 100%;
+ padding-top: var(--fs-spacing-4);
+ padding-bottom: var(--fs-spacing-4);
+
+ @include media(">=notebook") {
+ padding-top: var(--fs-grid-padding);
+ padding-bottom: var(--fs-grid-padding);
+ }
+}
+
+.layout__content {
+ box-sizing: border-box;
+ width: 100%;
+ max-width: var(--fs-grid-breakpoint-notebook);
+ margin-right: auto;
+ margin-left: auto;
+ padding-right: var(--fs-grid-padding);
+ padding-left: var(--fs-grid-padding);
+}
+
+// Avoids double scroll issue on the page when overlay is open
+#layout.no-scroll {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ overflow: hidden;
+}
+
+// Helper class
+.display-mobile {
+ @include media(">=notebook") {
+ display: none;
+ visibility: hidden;
+ }
+}
+
+// Helper class
+.hidden-mobile {
+ @include media("=notebook") {
+ --fs-scale : var(--fs-text-scale-desk);
+ }
+
+ // NUMERIC SCALE
+ --fs-text-size-base : 16px; // 1rem
+
+ --fs-text-size-0 : 12px; // Smallest
+ --fs-text-size-1 : 14px; // Smaller // Mob Desk
+ --fs-text-size-2 : var(--fs-text-size-base); // 16px 16px
+ --fs-text-size-3 : calc(var(--fs-text-size-2) * var(--fs-scale)); // 20px 20px
+ --fs-text-size-4 : calc(var(--fs-text-size-3) * var(--fs-scale)); // 25px 25px
+ --fs-text-size-5 : calc(var(--fs-text-size-4) * var(--fs-scale)); // 31px 31px
+ --fs-text-size-6 : calc(var(--fs-text-size-5) * var(--fs-scale)); // 39px 39px
+ --fs-text-size-7 : calc(var(--fs-text-size-6) * var(--fs-scale)); // 48px 48px
+ --fs-text-size-8 : calc(var(--fs-text-size-7) * var(--fs-scale)); // 61px 61px
+
+ // HIERARCHY SCALE
+ --fs-text-size-title-page : var(--fs-text-size-6);
+ --fs-text-size-title-product : var(--fs-text-size-4);
+ --fs-text-size-title-section : var(--fs-text-size-4);
+ --fs-text-size-title-subsection : var(--fs-text-size-4);
+ --fs-text-size-title-mini : var(--fs-text-size-4);
+ --fs-text-size-lead : var(--fs-text-size-4);
+ --fs-text-size-menu : var(--fs-text-size-base);
+ --fs-text-size-body : var(--fs-text-size-base);
+ --fs-text-size-legend : var(--fs-text-size-1);
+ --fs-text-size-tiny : var(--fs-text-size-0);
+}
+
+
+// --------------------------------------------------------
+// Spacing (UI Essentials)
+// --------------------------------------------------------
+
+body {
+ // NUMERIC SCALE
+ --fs-spacing-0 : .25rem; // 4px
+ --fs-spacing-1 : .5rem; // 8px
+ --fs-spacing-2 : .75rem; // 12px
+ --fs-spacing-3 : 1rem; // 16px (--fs-text-size-base)
+ --fs-spacing-4 : 1.5rem; // 24px
+ --fs-spacing-5 : 2rem; // 32px
+ --fs-spacing-6 : 2.5rem; // 40px
+ --fs-spacing-7 : 3rem; // 48px
+ --fs-spacing-8 : 3.5rem; // 56px
+ --fs-spacing-9 : 4rem; // 64px
+ --fs-spacing-10 : 4.5rem; // 72px
+ --fs-spacing-11 : 5rem; // 80px
+ --fs-spacing-12 : 5.5rem; // 88px
+ --fs-spacing-13 : 6rem; // 96px
+}
+
+
+// --------------------------------------------------------
+// Grid & Layout (UI Essentials)
+// --------------------------------------------------------
+
+body {
+ // PADDING
+ --fs-grid-padding : var(--fs-spacing-3);
+ @include media(">=tablet") {
+ --fs-grid-padding : var(--fs-spacing-4);
+ }
+ @include media(">=notebook") {
+ --fs-grid-padding : var(--fs-spacing-5);
+ }
+
+ // CONTAINER
+ --fs-grid-max-width : var(--fs-grid-breakpoint-notebook);
+
+ // GAPS
+ --fs-grid-gap-0 : var(--fs-spacing-3);
+ --fs-grid-gap-1 : var(--fs-spacing-4);
+ --fs-grid-gap-2 : var(--fs-spacing-5);
+
+ // BREAKPOINTS
+ --fs-grid-breakpoint-phone : #{map-get($breakpoints, "phone")};
+ --fs-grid-breakpoint-phonemid : #{map-get($breakpoints, "phonemid")};
+ --fs-grid-breakpoint-tablet : #{map-get($breakpoints, "tablet")};
+ --fs-grid-breakpoint-notebook : #{map-get($breakpoints, "notebook")};
+ --fs-grid-breakpoint-desktop : #{map-get($breakpoints, "desktop")};
+}
+
+
+// --------------------------------------------------------
+// Interactive Controls (UI Essentials)
+// --------------------------------------------------------
+
+body {
+ // TAP
+ --fs-control-tap-size-smallest : calc(var(--fs-control-tap-size) / 2);
+ --fs-control-tap-size : var(--fs-spacing-7); // 3rem = 48px
+ @include media(">=notebook") {
+ --fs-control-tap-size : var(--fs-spacing-7); // This value can be smaller on desktops
+ }
+
+ // STATES
+ --fs-control-bkg-default : var(--fs-color-neutral-0);
+ --fs-control-bkg-hover : var(--fs-control-tap-size);
+ --fs-control-bkg-active : var(--fs-control-tap-size);
+ --fs-control-bkg-disabled : var(--fs-color-disabled-bkg);
+
+ // SIZING
+ --fs-control-min-height : var(--fs-control-tap-size);
+}
+
+
+// --------------------------------------------------------
+// Refinements
+// --------------------------------------------------------
+
+body {
+ // TRANSITION
+ --fs-transition-timing : .2s;
+ --fs-transition-property : all;
+ --fs-transition-function : ease-in-out;
+
+ // BORDERS
+ --fs-border-radius-circle : 100%;
+ --fs-border-radius-pill : 100px;
+ --fs-border-radius-small : .125rem;
+ --fs-border-radius-default : .25rem;
+
+ --fs-border-color-default : var(--fs-color-neutral-4);
+ --fs-border-color-default-hover : var(--fs-color-main-2);
+ --fs-border-color-default-active : var(--fs-color-main-2);
+ --fs-border-color-default-disabled: var(--fs-color-neutral-6);
+
+ --fs-border-color-light : var(--fs-color-neutral-3);
+ --fs-border-color-light-hover : var(--fs-color-neutral-3);
+ --fs-border-color-light-active : var(--fs-color-neutral-3);
+
+ --fs-border-width-default : 1px;
+ --fs-border-width-thick : 2px;
+ --fs-border-width-thickest : 3px;
+
+ // SHADOW
+ --fs-shadow : 0 1px 4px rgb(0 0 0 / 10%), 0 6px 8px rgb(0 0 0 / 10%);
+ --fs-shadow-darker : 0 0 10px rgb(0 0 0 / 20%);
+ --fs-shadow-hover : var(--fs-shadow);
+}
+
+/* stylelint-enable */
diff --git a/src/styles/global/typography.scss b/src/styles/global/typography.scss
new file mode 100644
index 000000000..daef3c743
--- /dev/null
+++ b/src/styles/global/typography.scss
@@ -0,0 +1,72 @@
+// ----------------------------------------------------------
+// GLOBAL STYLES
+// Typography (Text)
+// ----------------------------------------------------------
+
+@import "src/styles/scaffold";
+
+body {
+ font-size: var(--fs-text-size-base);
+ font-family: var(--fs-text-face-body);
+ letter-spacing: .01em;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+h1, h2, h3, h4, h5, h6, p, ul {
+ margin: 0;
+ padding: 0;
+}
+
+.text__title-product {
+ font-weight: var(--fs-text-weight-regular);
+ font-size: var(--fs-text-size-4);
+ line-height: 1.12;
+}
+
+.text__title-section {
+ font-weight: var(--fs-text-weight-bold);
+ font-size: var(--fs-text-size-4);
+ line-height: 1.16;
+
+ @include media(">=notebook") { font-size: var(--fs-text-size-5); }
+}
+
+.text__title-subsection {
+ font-weight: var(--fs-text-weight-bold);
+ font-size: var(--fs-text-size-3);
+ line-height: 1.2;
+}
+
+.text__title-mini {
+ font-weight: var(--fs-text-weight-bold);
+ font-size: var(--fs-text-size-2);
+ line-height: 1.25;
+}
+
+// TODO: Can we replace this with `.text__body`?
+.text__title-mini-alt {
+ font-size: var(--fs-text-size-2);
+ line-height: 1.25;
+}
+
+.text__lead {
+ font-weight: var(--fs-text-weight-bold);
+ font-size: var(--fs-text-size-4);
+ line-height: 1.12;
+}
+
+.text__body {
+ font-size: var(--fs-text-size-2);
+ line-height: 1.5;
+}
+
+.text__legend {
+ font-size: var(--fs-text-size-1);
+ line-height: 1.7;
+}
+
+.text__tiny {
+ font-size: var(--fs-text-size-0);
+ line-height: 1.5;
+}
diff --git a/src/styles/global/utilities.scss b/src/styles/global/utilities.scss
new file mode 100644
index 000000000..d7a09d1f2
--- /dev/null
+++ b/src/styles/global/utilities.scss
@@ -0,0 +1,69 @@
+// ----------------------------------------------------------
+// GLOBAL STYLES
+// Utilities
+// ----------------------------------------------------------
+
+/* SQ-DISABLE */
+@use "sass:math";
+
+/* SQ-ENABLE */
+
+// Px to rem.
+$base: 16px !default;
+
+@function rem($size) {
+ $rem: math.div($size, $base);
+
+ @return #{$rem}rem;
+}
+
+@mixin input-focus-ring {
+ @media not all and (min-resolution: .001dpcm) { // Target only Safari browsers
+ @supports (-webkit-appearance:none) { // Use `focus` instead of `focus-visible`
+ &:hover:focus, // due to Safari's lack of support
+ &:focus {
+ border-color: var(--fs-border-color-default-active);
+ outline: none;
+ box-shadow:
+ 0 0 0 1px var(--fs-color-body-bkg),
+ 0 0 0 var(--fs-border-width-thickest) var(--fs-color-focus-ring),
+ inset 0 0 0 var(--fs-border-width-default) var(--fs-border-color-default-active);
+ }
+ }
+ }
+
+ &:focus-visible,
+ &:hover:focus-visible {
+ border-color: var(--fs-border-color-default-active);
+ outline: none;
+ box-shadow:
+ 0 0 0 1px var(--fs-color-body-bkg),
+ 0 0 0 var(--fs-border-width-thickest) var(--fs-color-focus-ring),
+ inset 0 0 0 var(--fs-border-width-default) var(--fs-border-color-default-active);
+ }
+}
+
+@mixin focus-ring {
+ outline: none;
+ box-shadow: 0 0 0 1px var(--fs-color-body-bkg), 0 0 0 var(--fs-border-width-thickest) var(--fs-color-focus-ring);
+}
+
+@mixin focus-ring-visible {
+ @media not all and (min-resolution: .001dpcm) { // Target only Safari browsers
+ @supports (-webkit-appearance:none) { // Use `focus` instead of `focus-visible`
+ &:focus { @include focus-ring; } // due to Safari's lack of support
+ }
+ }
+ &:focus-visible { @include focus-ring; }
+}
+
+@mixin truncate-title {
+ display: -webkit-box;
+ overflow: hidden;
+ -webkit-box-orient: vertical;
+ -moz-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ line-clamp: 2;
+ text-overflow: -o-ellipsis-lastline;
+ text-overflow: ellipsis;
+}
diff --git a/src/styles/grid.scss b/src/styles/grid.scss
deleted file mode 100644
index 8f67d92ca..000000000
--- a/src/styles/grid.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-@import "src/styles/scaffold";
-
-// Default //////////////////////////
-
-.grid-section {
- margin-top: var(--space-4);
- margin-bottom: var(--space-4);
-
- @include media(">=notebook") {
- margin-top: var(--page-padding-notebook);
- margin-bottom: var(--page-padding-notebook);
- }
-}
-
-.grid-content-full {
- width: 100%;
- padding-top: var(--space-4);
- padding-bottom: var(--space-4);
-
- @include media(">=notebook") {
- padding-top: var(--page-padding-notebook);
- padding-bottom: var(--page-padding-notebook);
- }
-}
-
-.grid-content {
- box-sizing: border-box;
- width: 100%;
- max-width: var(--breakpoint-notebook);
- margin-right: auto;
- margin-left: auto;
- padding-right: var(--page-padding-phone);
- padding-left: var(--page-padding-phone);
-
- @include media(">=tablet") {
- padding-right: var(--page-padding-tablet);
- padding-left: var(--page-padding-tablet);
- }
-
- @include media(">=notebook") {
- padding-right: var(--page-padding-notebook);
- padding-left: var(--page-padding-notebook);
- }
-}
diff --git a/src/styles/layout.scss b/src/styles/layout.scss
deleted file mode 100644
index a336f27d7..000000000
--- a/src/styles/layout.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-@import "scaffold";
-
-body {
- min-height: 100vh;
- color: var(--color-text);
- background-color: var(--bg-body);
-}
-
-main {
- display: flex;
- flex-wrap: wrap;
- background-color: var(--bg-body);
-}
-
-.page__section {
- display: inline-block;
- width: 100%;
- .title-section { margin-bottom: var(--space-3); }
-}
-
-.page__section-shelf {
- .page__section-content {
- min-height: 21.06rem;
-
- @include media(">=notebook") {
- margin-top: calc(-1 * var(--space-0));
- margin-bottom: calc(-1 * var(--space-3));
- }
- }
-}
-
-.page__section-divisor {
- padding-top: var(--space-5);
- border-top: 1px solid var(--color-border-display);
-
- @include media(">=notebook") { padding-top: var(--space-9); }
-}
diff --git a/src/styles/resets/reset.css b/src/styles/resets/reset.css
deleted file mode 100644
index 5397aea88..000000000
--- a/src/styles/resets/reset.css
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Reset default styles */
-
-body {
- margin: 0;
- padding: 0;
-}
-
-/* Remove all of the default margins */
-blockquote,
-dl,
-dd,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-hr,
-figure,
-p,
-pre {
- margin: 0;
-}
-
-/* Remove heading elements default style*/
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-size: inherit;
- font-weight: inherit;
-}
-
-/* Remove list elements default style*/
-ol,
-ul {
- list-style: none;
- margin: 0;
- padding: 0;
-}
diff --git a/src/styles/scaffold.scss b/src/styles/scaffold.scss
index 8a6708c13..e08b1fdd7 100644
--- a/src/styles/scaffold.scss
+++ b/src/styles/scaffold.scss
@@ -4,4 +4,4 @@
@import "vendors/include-media";
// Output functions & mixins
-@import "utilities";
+@import "global/utilities";
diff --git a/src/styles/theme.scss b/src/styles/theme.scss
deleted file mode 100644
index a4303e1df..000000000
--- a/src/styles/theme.scss
+++ /dev/null
@@ -1,145 +0,0 @@
-// Output functions & mixins
-@import "scaffold";
-
-// Resets //////////////////////////
-@import "resets/modern-normalize";
-@import "resets/reset";
-
-// Styles ///////////////////////////
-@import "colors";
-@import "typography";
-@import "grid";
-
-// Tokens ///////////////////////////
-
-:root {
- // Colors /////////////////////////
-
- // Brand
- --color-primary-0: #ebdcff;
- --color-primary-1: #8d50fd;
- --color-primary-2: #732fe2;
- --color-primary-3: #5900c8;
- --color-secondary-0: #ecf0ff;
- --color-secondary-1: #d8e2ff;
- --color-secondary-2: #00419e;
- --color-secondary-3: #002c71;
- --color-secondary-4: #001947;
- --color-neutral-0: #ffffff;
- --color-neutral-1: #f1f2f3;
- --color-neutral-2: #e3e6e8;
- --color-neutral-3: #c7ccd1;
- --color-neutral-4: #9099a2;
- --color-neutral-5: #74808b;
- --color-neutral-6: #5d666f;
- --color-neutral-7: #171a1c;
-
- // State
- --color-success: #cee8de;
- --color-success-dark: #368369;
- --color-warning: #f6e0ba;
- --color-error: #fee1e1;
-
- // Customizable
- --color-text: var(--color-neutral-7);
- --color-text-inverse: var(--color-neutral-0);
-
- --bg-body: var(--color-neutral-0);
- --bg-primary-light: var(--color-primary-0);
- --bg-secondary-light: var(--color-secondary-0);
- --bg-neutral-light: var(--color-neutral-1);
- --bg-neutral-lightest: var(--color-neutral-0);
- --bg-secondary-dark: var(--color-secondary-4);
-
- // Typography /////////////////////
-
- // Family
- --sans-serif: "Lato", -apple-system, system-ui, BlinkMacSystemFont, sans-serif;
-
- // Base
- --base-font-size: 16px;
- --scale: 1.25;
-
- // Spacing ////////////////////////
-
- // Sizes
- --space-0: .25rem; // 4px
- --space-1: .5rem; // 8px
- --space-2: .75rem; // 12px
- --space-3: 1rem; // 16px
- --space-4: 1.5rem; // 24px
- --space-5: 2rem; // 32px
- --space-6: 2.5rem; // 40px
- --space-7: 3rem; // 48px
- --space-8: 3.5rem; // 56px
- --space-9: 4rem; // 64px
- --space-10: 4.5rem; // 72px
- --space-11: 5rem; // 80px
- --space-12: 5.5rem; // 88px
- --space-13: 6rem; // 96px
-
- // Paddings
- --page-padding-phone: var(--space-3);
- --page-padding-tablet: var(--space-4);
- --page-padding-notebook: var(--space-5);
-
- // Target Size
- --tap-min-size: 48px;
-
- // Box-Shadows ////////////////////
- --box-shadow: 0 1px 4px rgb(0 0 0 / 10%), 0 6px 8px rgb(0 0 0 / 10%);
- --box-shadow-dark: 0 0 10px rgb(0 0 0 / 20%);
-
- // Border /////////////////////////
-
- --border-radius-flat: 0;
- --border-radius-small: .125rem;
- --border-radius-regular: .25rem;
- --border-radius-pill: 100px;
- --border-radius-circle: 100%;
-
- --border-radius-default: var(--border-radius-regular);
- --border-radius-button: var(--border-radius-regular);
-
- // Width
- --border-width-0: 1px;
- --border-width-1: 2px;
- --border-width-2: 3px;
-
- // Grid ///////////////////////////
-
- // Gaps
- --grid-gap-0: var(--space-3);
- --grid-gap-1: var(--space-4);
- --grid-gap-2: var(--space-5);
-
- // Breakpoints
- --breakpoint-phone: 320px;
- --breakpoint-phonemid: 375px;
- --breakpoint-tablet: 768px;
- --breakpoint-notebook: 1280px;
- --breakpoint-desktop: 1440px;
-}
-
-// Avoids double scroll issue on the page when overlay is open
-#layout.no-scroll {
- position: fixed;
- top: 0;
- right: 0;
- left: 0;
- overflow: hidden;
-}
-
-.display-mobile {
- @include media(">=notebook") {
- display: none;
- visibility: hidden;
- }
-}
-
-.hidden-mobile {
- @include media("=tablet") { font-size: var(--text-size-7); }
-}
-
-.title-hero-small {
- font-weight: var(--text-weight-black);
- font-size: var(--text-size-5);
- line-height: 1.1;
-
- @include media(">=tablet") { font-size: var(--text-size-6); }
-}
-
-.title-display-big {
- font-weight: var(--text-weight-bold);
- font-size: var(--text-size-3);
- line-height: 1.25;
-
- @include media(">=notebook") { font-size: var(--text-size-6); }
-}
-
-.title-section {
- font-weight: var(--text-weight-bold);
- font-size: var(--text-size-4);
- line-height: 1.16;
-
- @include media(">=notebook") { font-size: var(--text-size-5); }
-}
-
-.title-display {
- font-weight: var(--text-weight-bold);
- font-size: var(--text-size-4);
- line-height: 1.12;
-}
-
-.title-product {
- font-weight: var(--text-weight-regular);
- font-size: var(--text-size-4);
- line-height: 1.12;
-}
-
-.title-subsection {
- font-weight: var(--text-weight-bold);
- font-size: var(--text-size-3);
- line-height: 1.2;
-}
-
-.title-sub-subsection {
- font-weight: var(--text-weight-bold);
- font-size: var(--text-size-2);
- line-height: 1.25;
-}
-
-.title-small {
- font-size: var(--text-size-2);
- line-height: 1.25;
-}
-
-// Texts ////////////////////////////
-
-.text-body-tiny {
- font-size: var(--text-size-0);
- line-height: 1.5;
-}
-
-.text-body-small {
- font-size: var(--text-size-1);
- line-height: 1.7;
-}
-
-.text-body {
- font-size: var(--text-size-2);
- line-height: 1.5;
-}
-
-.text-body-big {
- font-size: var(--text-size-2);
- line-height: 1.5;
-
- @include media(">=notebook") {
- font-size: var(--text-size-3);
- }
-}
diff --git a/src/styles/utilities.scss b/src/styles/utilities.scss
deleted file mode 100644
index 5fee0b2ec..000000000
--- a/src/styles/utilities.scss
+++ /dev/null
@@ -1,66 +0,0 @@
-// Mixins & functions utilities //////////////////////////
-
-/* SQ-DISABLE */
-@use "sass:math";
-
-/* SQ-ENABLE */
-
-// Px to rem.
-$base: 16px !default;
-
-@function rem($size) {
- $rem: math.div($size, $base);
-
- @return #{$rem}rem;
-}
-
-@mixin input-focus-ring {
- @media not all and (min-resolution: .001dpcm) { // Target only Safari browsers
- @supports (-webkit-appearance:none) { // Use `focus` instead of `focus-visible`
- &:hover:focus,
- &:focus { // due to Safari's lack of support
- border-color: var(--color-border-input-selected);
- outline: none;
- box-shadow:
- 0 0 0 1px var(--bg-body),
- 0 0 0 var(--border-width-2) var(--bg-focus-ring),
- inset 0 0 0 var(--border-width-0) var(--color-border-input-selected);
- }
- }
- }
-
- &:focus-visible,
- &:hover:focus-visible {
- border-color: var(--color-border-input-selected);
- outline: none;
- box-shadow:
- 0 0 0 1px var(--bg-body),
- 0 0 0 var(--border-width-2) var(--bg-focus-ring),
- inset 0 0 0 var(--border-width-0) var(--color-border-input-selected);
- }
-}
-
-@mixin focus-ring {
- outline: none;
- box-shadow: 0 0 0 1px var(--bg-body), 0 0 0 var(--border-width-2) var(--bg-focus-ring);
-}
-
-@mixin focus-ring-visible {
- @media not all and (min-resolution: .001dpcm) { // Target only Safari browsers
- @supports (-webkit-appearance:none) { // Use `focus` instead of `focus-visible`
- &:focus { @include focus-ring; } // due to Safari's lack of support
- }
- }
- &:focus-visible { @include focus-ring; }
-}
-
-@mixin truncate-title {
- display: -webkit-box;
- overflow: hidden;
- -webkit-box-orient: vertical;
- -moz-box-orient: vertical;
- -webkit-line-clamp: 2;
- line-clamp: 2;
- text-overflow: -o-ellipsis-lastline;
- text-overflow: ellipsis;
-}
diff --git a/src/styles/resets/_modern-normalize.css b/src/styles/vendors/modern-normalize.css
similarity index 100%
rename from src/styles/resets/_modern-normalize.css
rename to src/styles/vendors/modern-normalize.css