settings-stack.css

12.7 KB · raw

1/* Settings Stack — layered category deck for the full settings surface. */23.stk-shell {4  flex: 1;5  min-height: 0;6  position: relative;7  overflow: hidden;8  padding: 10px 12px 28px;9}1011.stk-mast {12  display: flex;13  align-items: center;14  justify-content: space-between;15  gap: 10px;16  padding: 0 0 8px;17}1819.stk-back {20  width: 28px;21  height: 28px;22  display: inline-flex;23  align-items: center;24  justify-content: center;25  flex: 0 0 auto;26  border: 1px solid var(--peach-border);27  border-radius: 999px;28  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);29  color: var(--peach-t1);30  cursor: pointer;31}3233.stk-back:hover {34  color: var(--peach-t0);35  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);36  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);37}3839.stk-mast-title {40  flex: 1;41  font-family: var(--font-display);42  font-style: italic;43  font-weight: 400;44  font-size: 22px;45  line-height: 1;46  color: var(--peach-t0);47}4849.stk-mast-meta {50  display: flex;51  align-items: baseline;52  gap: 6px;53  font-family: var(--font-mono);54  font-size: 9px;55  letter-spacing: 0.22em;56  text-transform: uppercase;57  color: var(--peach-t2);58}5960.stk-version-corner {61  position: absolute;62  bottom: 7px;63  right: 14px;64  font-family: var(--font-mono);65  font-size: 7px;66  letter-spacing: 0.06em;67  color: color-mix(in srgb, var(--peach-t2) 50%, transparent);68  pointer-events: none;69  z-index: 1;70}7172.stk-deck {73  position: relative;74  height: min(462px, calc(100% - 36px));75  min-height: 462px;76  margin-top: 0;77}7879.stk-card {80  position: absolute;81  left: 0;82  right: 0;83  border-radius: var(--stack-card-radius);84  padding: 18px 18px 16px;85  overflow: hidden;86  cursor: pointer;87  transition:88    transform 380ms var(--stack-spring),89    height 380ms var(--stack-spring),90    box-shadow 280ms ease,91    opacity 220ms ease;92  box-shadow:93    0 1px 0 color-mix(in srgb, var(--peach-t0) 5%, transparent) inset,94    0 8px 20px rgba(0, 0, 0, 0.25);95  border: 1px solid color-mix(in srgb, var(--peach-t0) 6%, transparent);96  will-change: transform;97}9899.stk-card::after {100  content: "";101  position: absolute;102  inset: 0;103  border-radius: inherit;104  pointer-events: none;105  background:106    radial-gradient(107      120% 80% at 0% 0%,108      color-mix(in srgb, #fff 12%, transparent),109      transparent 50%110    );111}112113.stk-card.is-active {114  box-shadow:115    0 1px 0 color-mix(in srgb, var(--peach-t0) 8%, transparent) inset,116    0 18px 36px rgba(0, 0, 0, 0.42);117  cursor: default;118}119120.stk-card.is-focused {121  cursor: default;122}123124.stk-card.is-tab:hover {125  transform: translateY(calc(var(--stk-card-top) - 7px));126  box-shadow:127    0 1px 0 color-mix(in srgb, #fff 9%, transparent) inset,128    0 16px 32px rgba(0, 0, 0, 0.36),129    0 0 0 1px color-mix(in srgb, #fff 10%, transparent);130  transition:131    transform 90ms ease-out,132    box-shadow 90ms ease-out;133}134135.stk-card.is-concealed {136  opacity: 0;137  pointer-events: none;138}139140.stk-card-top {141  display: flex;142  justify-content: space-between;143  align-items: center;144  margin-bottom: 12px;145  position: relative;146  z-index: 1;147}148149.stk-card-num {150  font-family: var(--font-mono);151  font-size: 8.5px;152  letter-spacing: 0.26em;153  text-transform: uppercase;154  opacity: 0.7;155}156157.stk-card-icon {158  opacity: 0.85;159}160161.stk-card-title {162  position: relative;163  z-index: 1;164  margin: 6px 0 0;165  font-family: var(--font-display);166  font-style: italic;167  font-weight: 400;168  font-size: 26px;169  line-height: 1.2;170}171172.stk-card-lede {173  position: relative;174  z-index: 1;175  margin: 4px 0 0;176  font-family: var(--font-display);177  font-style: italic;178  font-size: 12.5px;179  line-height: 1.4;180  opacity: 0.72;181}182183.stk-card-body {184  position: relative;185  z-index: 1;186  height: calc(100% - 76px);187  margin-top: 14px;188  overflow-y: auto;189  overflow-x: hidden;190  opacity: 0;191  scrollbar-width: thin;192  scrollbar-color: color-mix(in srgb, currentColor 28%, transparent) transparent;193  transition: opacity 200ms 100ms ease;194}195196.stk-card.is-active .stk-card-body {197  opacity: 1;198}199200.stk-card.is-tab .stk-card-top {201  display: none;202}203204.stk-card.is-tab {205  padding: 10px 16px 8px;206}207208.stk-card.is-tab .stk-card-title {209  font-size: 19px;210  line-height: 1;211  white-space: nowrap;212  overflow: hidden;213  text-overflow: ellipsis;214}215216.stk-card.is-tab .stk-card-lede,217.stk-card.is-tab .stk-card-body {218  display: none;219}220221.stk-card *:focus-visible {222  outline: 1px solid currentColor;223  outline-offset: 2px;224}225226.stk-row {227  display: flex;228  align-items: center;229  justify-content: space-between;230  gap: 12px;231  padding: 10px 0;232  border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);233}234235.stk-row:last-child {236  border-bottom: none;237}238239.stk-row-name {240  font-size: 13px;241}242243.stk-row-sub {244  margin-top: 2px;245  font-family: var(--font-display);246  font-style: italic;247  font-size: 11px;248  opacity: 0.7;249}250251.stk-pill {252  display: inline-flex;253  align-items: center;254  justify-content: center;255  min-height: 24px;256  padding: 3px 10px;257  font-family: var(--font-mono);258  font-size: 10px;259  letter-spacing: 0.08em;260  text-transform: lowercase;261  background: transparent;262  color: currentColor;263  border: 1px solid color-mix(in srgb, currentColor 35%, transparent);264  border-radius: 999px;265  cursor: pointer;266  transition: background 140ms ease, border-color 140ms ease;267}268269.stk-pill:hover,270.stk-pill.is-accent {271  background: color-mix(in srgb, currentColor 18%, transparent);272  border-color: color-mix(in srgb, currentColor 55%, transparent);273}274275.stk-pip {276  display: inline-block;277  width: 18px;278  height: 18px;279  border-radius: 50%;280  background: rgba(0, 0, 0, 0.18);281  border: 1px solid color-mix(in srgb, currentColor 24%, transparent);282}283284.stk-pip.is-on {285  background: var(--peach-health-ok);286  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-health-ok) 55%, transparent);287}288289.stk-sync-actions,290.stk-fb-chips,291.stk-inline-actions {292  display: flex;293  flex-wrap: wrap;294  gap: 6px;295}296297.stk-key {298  font-family: var(--font-mono);299  font-size: 10px;300  letter-spacing: 0.06em;301  padding: 2px 7px;302  border: 1px solid color-mix(in srgb, currentColor 32%, transparent);303  border-radius: 4px;304  background: color-mix(in srgb, currentColor 6%, transparent);305}306307.stk-pro-headline {308  padding: 6px 0 14px;309  border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);310}311312.stk-pro-title,313.stk-pro-price {314  font-family: var(--font-display);315  font-style: italic;316  line-height: 1;317}318319.stk-pro-title {320  font-size: 22px;321}322323.stk-pro-price {324  font-size: 28px;325}326327.stk-pro-meta {328  margin-top: 4px;329  font-family: var(--font-mono);330  font-size: 9.5px;331  letter-spacing: 0.18em;332  text-transform: uppercase;333  opacity: 0.7;334}335336.stk-card .peach-settings-body {337  display: block;338  flex: none;339  min-height: 0;340  overflow: visible;341  padding: 0;342  background: transparent;343}344345.stk-card .peach-settings-group {346  margin: 0;347  padding: 0;348  border: 0;349  border-radius: 0;350  background: transparent;351  box-shadow: none;352  backdrop-filter: none;353  -webkit-backdrop-filter: none;354}355356.stk-card .peach-settings-group + .peach-settings-group {357  margin-top: 0;358}359360.stk-card .peach-settings-sub-label,361.stk-card .peach-settings-label {362  margin: 12px 0 4px;363  color: color-mix(in srgb, currentColor 58%, transparent);364}365366.stk-card .peach-settings-sub-label:first-child,367.stk-card .peach-settings-label:first-child {368  margin-top: 0;369}370371.stk-card .peach-settings-row,372.stk-card .peach-shortcut-row,373.stk-card .peach-history-row {374  border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);375  color: currentColor;376}377378.stk-card .peach-settings-row--meta,379.stk-card .peach-settings-value,380.stk-card .peach-hint,381.stk-card .peach-settings-hint,382.stk-card .peach-feedback-meta,383.stk-card .peach-feedback-anon,384.stk-card .peach-feedback-intro,385.stk-card .peach-history-sub,386.stk-card .peach-history-footer,387.stk-card .peach-danger-card-copy {388  color: color-mix(in srgb, currentColor 70%, transparent);389}390391.stk-card .peach-toggle {392  --peach-accent: currentColor;393  border-color: color-mix(in srgb, currentColor 32%, transparent);394  background: color-mix(in srgb, currentColor 8%, transparent);395}396397.stk-card .peach-toggle.is-on {398  background: color-mix(in srgb, currentColor 28%, transparent);399  border-color: color-mix(in srgb, currentColor 50%, transparent);400}401402.stk-card .peach-toggle-knob {403  background: color-mix(in srgb, currentColor 58%, transparent);404}405406.stk-card .peach-toggle.is-on .peach-toggle-knob {407  background: currentColor;408}409410.stk-card .peach-btn--subtle,411.stk-card .peach-btn--ghost,412.stk-card .peach-btn--accent,413.stk-card .peach-shortcut-chip,414.stk-card .peach-shortcut-reset,415.stk-card .peach-feedback-chip,416.stk-card .peach-settings-license-copy,417.stk-card .peach-settings-license-toggle {418  color: currentColor;419  border-color: color-mix(in srgb, currentColor 28%, transparent);420  background: color-mix(in srgb, currentColor 8%, transparent);421}422423.stk-card .peach-btn--subtle:hover,424.stk-card .peach-btn--ghost:hover,425.stk-card .peach-btn--accent:hover,426.stk-card .peach-shortcut-chip:hover,427.stk-card .peach-feedback-chip:hover,428.stk-card .peach-feedback-chip.is-active {429  background: color-mix(in srgb, currentColor 16%, transparent);430}431432.stk-card .peach-settings-input,433.stk-card .peach-settings-select,434.stk-card .peach-pro-key-inline-input,435.stk-card .peach-feedback-textarea {436  color: currentColor;437  border-color: color-mix(in srgb, currentColor 22%, transparent);438  background: rgba(0, 0, 0, 0.18);439}440441.stk-card .peach-settings-input::placeholder,442.stk-card .peach-pro-key-inline-input::placeholder,443.stk-card .peach-feedback-textarea::placeholder {444  color: color-mix(in srgb, currentColor 42%, transparent);445}446447.stk-card .peach-accent-picker {448  justify-content: flex-end;449  max-width: 160px;450}451452.stk-card .peach-accent-swatch {453  width: 20px;454  height: 20px;455}456457.stk-card .peach-accent-swatch.is-active {458  border-color: currentColor;459}460461.stk-card .peach-history-list {462  border-color: color-mix(in srgb, currentColor 18%, transparent);463}464465.stk-card .peach-danger-card {466  background: rgba(0, 0, 0, 0.18);467  border-color: color-mix(in srgb, currentColor 20%, transparent);468}469470.stk-card .peach-pro-upgrade,471.stk-card .peach-pro-active,472.stk-card .peach-pro-active-hero,473.stk-card .peach-pro-grid-item {474  background: transparent;475  border-color: color-mix(in srgb, currentColor 14%, transparent);476  box-shadow: none;477}478479.stk-card .peach-pro-grid {480  gap: 6px;481}482483.stk-card .peach-pro-grid-item {484  padding: 7px 0;485}486487.stk-card .peach-pro-headline,488.stk-card .peach-pro-active-title {489  color: currentColor;490}491492.stk-card .peach-feedback-textarea {493  min-height: 116px;494}495496.peach-settings-overlay {497  --bg: #0C0A06;498  --s1: #131109;499  --s2: #1A1710;500  --s3: #221F14;501  --t0: #F0E8D8;502  --t1: rgba(240, 232, 216, 0.50);503  --t2: rgba(240, 232, 216, 0.20);504  --t3: rgba(240, 232, 216, 0.07);505  --t4: rgba(240, 232, 216, 0.04);506  --surface-card: rgba(240, 232, 216, 0.02);507  --surface-elevated: rgba(19, 17, 9, 0.88);508  --shell-accent-a: color-mix(in srgb, var(--peach-accent) 8%, transparent);509  --shell-accent-b: color-mix(in srgb, var(--peach-accent) 6%, transparent);510  --peach-bg: var(--bg);511  --peach-s1: var(--s1);512  --peach-s2: var(--s2);513  --peach-s3: var(--s3);514  --peach-t0: var(--t0);515  --peach-t1: var(--t1);516  --peach-t2: var(--t2);517  --peach-t3: var(--t3);518  --peach-t4: var(--t4);519  --peach-bg-card: var(--surface-card);520  --peach-border: var(--peach-t3);521  --peach-text-dim: var(--peach-t1);522  background: var(--peach-bg);523  color: var(--peach-t0);524}525526/* Force html/body backgrounds dark when Settings is mounted so the popup527   frame chrome doesn't go white in light theme. */528html:has(.peach-settings-overlay),529html:has(.peach-settings-overlay) body {530  background: #0C0A06;531}532533/* Beat the .light .peach-btn--ghost rule in popup.css which would otherwise534   paint Settings buttons with the light-theme surface color. */535.peach-settings-overlay .stk-card .peach-btn--ghost:not(.peach-icon-btn) {536  background: color-mix(in srgb, var(--peach-t0) 8%, transparent);537  border-color: color-mix(in srgb, var(--peach-t0) 22%, transparent);538  color: var(--peach-t0);539}540.peach-settings-overlay .stk-card .peach-btn--ghost:not(.peach-icon-btn):hover {541  background: color-mix(in srgb, var(--peach-t0) 16%, transparent);542}543544.peach-settings-overlay .stk-shell {545  background: var(--peach-bg);546}547548.peach-settings-overlay .stk-card {549  box-shadow:550    0 1px 0 color-mix(in srgb, var(--peach-t0) 5%, transparent) inset,551    0 8px 20px rgba(0, 0, 0, 0.25);552}553554.peach-settings-overlay .stk-card.is-active {555  box-shadow:556    0 1px 0 color-mix(in srgb, var(--peach-t0) 8%, transparent) inset,557    0 18px 36px rgba(0, 0, 0, 0.42);558}559560:root[data-native="true"] {561  --stack-tab-h: 64px;562  --stack-tab-overlap: 16px;563}564565:root[data-native="true"] .stk-deck {566  height: calc(100dvh - 126px);567  min-height: 520px;568}569570[data-motion="reduce"] .stk-card,571[data-motion="reduce"] .stk-card-body {572  transition: none !important;573}