@penaprieto/design-system
Version:
Multi-brand React design system with design tokens from Figma
127 lines (107 loc) • 2.78 kB
CSS
/* Base Tabs */
.ds-tabs {
display: flex;
flex-direction: column;
width: 100%;
}
.ds-tabs__list {
display: flex;
border-bottom: 1px solid var(--semantic-border-default-default);
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.ds-tabs__list::-webkit-scrollbar {
display: none;
}
/* Tab Item */
.ds-tabs__item {
position: relative;
display: flex;
align-items: center;
justify-content: center;
gap: var(--size2, 8px);
cursor: pointer;
color: var(--semantic-text-corp-secondary);
transition: all 0.2s ease-in-out;
font-family: var(--body-regular-fontFamily, var(--font-family, 'Satoshi', sans-serif));
font-weight: var(--body-regular-fontWeight, 400);
line-height: var(--body-regular-lineHeight, 150%);
-webkit-font-smoothing: antialiased;
box-sizing: border-box;
flex-shrink: 0;
white-space: nowrap;
user-select: none;
}
.ds-tabs__icon {
display: flex;
align-items: center;
justify-content: center;
color: var(--semantic-icon-default-default);
transition: color 0.2s ease-in-out;
}
.ds-tabs__label {
font-family: inherit;
font-weight: inherit;
line-height: inherit;
}
/* Active state */
.ds-tabs__item--active {
color: var(--semantic-text-corp-primary);
box-shadow: inset 0 -2px 0 0 var(--semantic-border-brand-default);
}
.ds-tabs__item--active .ds-tabs__icon {
color: var(--semantic-icon-brand-default);
}
/* Hover */
.ds-tabs__item:hover:not(.ds-tabs__item--disabled) {
color: var(--semantic-text-corp-primary);
}
.ds-tabs__item:hover:not(.ds-tabs__item--disabled) .ds-tabs__icon {
color: var(--semantic-icon-brand-default);
}
/* Focus */
.ds-tabs__item:focus-visible {
outline: none;
box-shadow: inset 0 -2px 0 0 var(--semantic-border-brand-default),
var(--semantic-focus-bright-blue);
z-index: 1;
}
/* Disabled */
.ds-tabs__item--disabled {
color: var(--semantic-text-corp-disabled);
cursor: not-allowed;
}
.ds-tabs__item--disabled .ds-tabs__icon {
color: var(--semantic-icon-default-disabled);
}
.ds-tabs__item--disabled .ds-tabs__label {
color: var(--semantic-text-corp-disabled);
}
/* Sizes */
.ds-tabs--large .ds-tabs__item {
padding: var(--size4, 16px) var(--size5, 40px);
min-height: 59px;
font-size: var(--body-large-fontSize, 18px);
}
.ds-tabs--medium .ds-tabs__item {
padding: var(--size3, 12px) var(--size6, 24px);
min-height: 48px;
font-size: var(--body-regular-fontSize, 16px);
}
.ds-tabs--small .ds-tabs__item {
padding: var(--size2, 8px) var(--size4, 16px);
min-height: 45px;
font-size: var(--body-small-fontSize, 14px);
}
/* Panels */
.ds-tabs__panels {
display: flex;
flex-direction: column;
}
.ds-tabs__panel {
padding: var(--size4, 16px) 0;
}
.ds-tabs__panel[hidden] {
display: none;
}