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  padding-bottom: 16px;191  opacity: 0;192  scrollbar-width: thin;193  scrollbar-color: color-mix(in srgb, currentColor 28%, transparent) transparent;194  transition: opacity 200ms 100ms ease;195}196197.stk-card.is-active .stk-card-body {198  opacity: 1;199}200201.stk-card.is-tab .stk-card-top {202  display: none;203}204205.stk-card.is-tab {206  padding: 10px 16px 8px;207}208209.stk-card.is-tab .stk-card-title {210  font-size: 19px;211  line-height: 1;212  white-space: nowrap;213  overflow: hidden;214  text-overflow: ellipsis;215}216217.stk-card.is-tab .stk-card-lede,218.stk-card.is-tab .stk-card-body {219  display: none;220}221222.stk-card *:focus-visible {223  outline: 1px solid currentColor;224  outline-offset: 2px;225}226227.stk-row {228  display: flex;229  align-items: center;230  justify-content: space-between;231  gap: 12px;232  padding: 10px 0;233  border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);234}235236.stk-row:last-child {237  border-bottom: none;238}239240.stk-row-name {241  font-size: 13px;242}243244.stk-row-sub {245  margin-top: 2px;246  font-family: var(--font-display);247  font-style: italic;248  font-size: 11px;249  opacity: 0.7;250}251252.stk-pill {253  display: inline-flex;254  align-items: center;255  justify-content: center;256  min-height: 24px;257  padding: 3px 10px;258  font-family: var(--font-mono);259  font-size: 10px;260  letter-spacing: 0.08em;261  text-transform: lowercase;262  background: transparent;263  color: currentColor;264  border: 1px solid color-mix(in srgb, currentColor 35%, transparent);265  border-radius: 999px;266  cursor: pointer;267  transition: background 140ms ease, border-color 140ms ease;268}269270.stk-pill:hover,271.stk-pill.is-accent {272  background: color-mix(in srgb, currentColor 18%, transparent);273  border-color: color-mix(in srgb, currentColor 55%, transparent);274}275276.stk-pip {277  display: inline-block;278  width: 18px;279  height: 18px;280  border-radius: 50%;281  background: rgba(0, 0, 0, 0.18);282  border: 1px solid color-mix(in srgb, currentColor 24%, transparent);283}284285.stk-pip.is-on {286  background: var(--peach-health-ok);287  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-health-ok) 55%, transparent);288}289290.stk-sync-actions,291.stk-fb-chips,292.stk-inline-actions {293  display: flex;294  flex-wrap: wrap;295  gap: 6px;296}297298.stk-key {299  font-family: var(--font-mono);300  font-size: 10px;301  letter-spacing: 0.06em;302  padding: 2px 7px;303  border: 1px solid color-mix(in srgb, currentColor 32%, transparent);304  border-radius: 4px;305  background: color-mix(in srgb, currentColor 6%, transparent);306}307308.stk-pro-headline {309  padding: 6px 0 14px;310  border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);311}312313.stk-pro-title,314.stk-pro-price {315  font-family: var(--font-display);316  font-style: italic;317  line-height: 1;318}319320.stk-pro-title {321  font-size: 22px;322}323324.stk-pro-price {325  font-size: 28px;326}327328.stk-pro-meta {329  margin-top: 4px;330  font-family: var(--font-mono);331  font-size: 9.5px;332  letter-spacing: 0.18em;333  text-transform: uppercase;334  opacity: 0.7;335}336337.stk-card .peach-settings-body {338  display: block;339  flex: none;340  min-height: 0;341  overflow: visible;342  padding: 0;343  background: transparent;344}345346.stk-card .peach-settings-group {347  margin: 0;348  padding: 0;349  border: 0;350  border-radius: 0;351  background: transparent;352  box-shadow: none;353  backdrop-filter: none;354  -webkit-backdrop-filter: none;355}356357.stk-card .peach-settings-group + .peach-settings-group {358  margin-top: 0;359}360361.stk-card .peach-settings-sub-label,362.stk-card .peach-settings-label {363  margin: 12px 0 4px;364  color: color-mix(in srgb, currentColor 58%, transparent);365}366367.stk-card .peach-settings-sub-label:first-child,368.stk-card .peach-settings-label:first-child {369  margin-top: 0;370}371372.stk-card .peach-settings-row,373.stk-card .peach-shortcut-row,374.stk-card .peach-history-row {375  border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);376  color: currentColor;377}378379.stk-card .peach-settings-row--meta,380.stk-card .peach-settings-value,381.stk-card .peach-hint,382.stk-card .peach-settings-hint,383.stk-card .peach-feedback-meta,384.stk-card .peach-feedback-anon,385.stk-card .peach-feedback-intro,386.stk-card .peach-history-sub,387.stk-card .peach-history-footer,388.stk-card .peach-danger-card-copy {389  color: color-mix(in srgb, currentColor 70%, transparent);390}391392.stk-card .peach-toggle {393  --peach-accent: currentColor;394  border-color: color-mix(in srgb, currentColor 32%, transparent);395  background: color-mix(in srgb, currentColor 8%, transparent);396}397398.stk-card .peach-toggle.is-on {399  background: color-mix(in srgb, currentColor 28%, transparent);400  border-color: color-mix(in srgb, currentColor 50%, transparent);401}402403.stk-card .peach-toggle-knob {404  background: color-mix(in srgb, currentColor 58%, transparent);405}406407.stk-card .peach-toggle.is-on .peach-toggle-knob {408  background: currentColor;409}410411.stk-card .peach-btn--subtle,412.stk-card .peach-btn--ghost,413.stk-card .peach-btn--accent,414.stk-card .peach-shortcut-chip,415.stk-card .peach-shortcut-reset,416.stk-card .peach-feedback-chip,417.stk-card .peach-settings-license-copy,418.stk-card .peach-settings-license-toggle {419  color: currentColor;420  border-color: color-mix(in srgb, currentColor 28%, transparent);421  background: color-mix(in srgb, currentColor 8%, transparent);422}423424.stk-card .peach-btn--subtle:hover,425.stk-card .peach-btn--ghost:hover,426.stk-card .peach-btn--accent:hover,427.stk-card .peach-shortcut-chip:hover,428.stk-card .peach-feedback-chip:hover,429.stk-card .peach-feedback-chip.is-active {430  background: color-mix(in srgb, currentColor 16%, transparent);431}432433.stk-card .peach-settings-input,434.stk-card .peach-settings-select,435.stk-card .peach-pro-key-inline-input,436.stk-card .peach-feedback-textarea {437  color: currentColor;438  border-color: color-mix(in srgb, currentColor 22%, transparent);439  background: rgba(0, 0, 0, 0.18);440}441442.stk-card .peach-settings-input::placeholder,443.stk-card .peach-pro-key-inline-input::placeholder,444.stk-card .peach-feedback-textarea::placeholder {445  color: color-mix(in srgb, currentColor 42%, transparent);446}447448.stk-card .peach-accent-picker {449  justify-content: flex-end;450  max-width: 160px;451}452453.stk-card .peach-accent-swatch {454  width: 20px;455  height: 20px;456}457458.stk-card .peach-accent-swatch.is-active {459  border-color: currentColor;460}461462.stk-card .peach-history-list {463  border-color: color-mix(in srgb, currentColor 18%, transparent);464}465466.stk-card .peach-danger-card {467  background: rgba(0, 0, 0, 0.18);468  border-color: color-mix(in srgb, currentColor 20%, transparent);469}470471.stk-card .peach-pro-upgrade,472.stk-card .peach-pro-active,473.stk-card .peach-pro-active-hero,474.stk-card .peach-pro-grid-item {475  background: transparent;476  border-color: color-mix(in srgb, currentColor 14%, transparent);477  box-shadow: none;478}479480.stk-card .peach-pro-grid {481  gap: 6px;482}483484.stk-card .peach-pro-grid-item {485  padding: 7px 0;486}487488.stk-card .peach-pro-headline,489.stk-card .peach-pro-active-title {490  color: currentColor;491}492493.stk-card .peach-feedback-textarea {494  min-height: 116px;495}496497.peach-settings-overlay {498  --bg: #0C0A06;499  --s1: #131109;500  --s2: #1A1710;501  --s3: #221F14;502  --t0: #F0E8D8;503  --t1: rgba(240, 232, 216, 0.50);504  --t2: rgba(240, 232, 216, 0.20);505  --t3: rgba(240, 232, 216, 0.07);506  --t4: rgba(240, 232, 216, 0.04);507  --surface-card: rgba(240, 232, 216, 0.02);508  --surface-elevated: rgba(19, 17, 9, 0.88);509  --shell-accent-a: color-mix(in srgb, var(--peach-accent) 8%, transparent);510  --shell-accent-b: color-mix(in srgb, var(--peach-accent) 6%, transparent);511  --peach-bg: var(--bg);512  --peach-s1: var(--s1);513  --peach-s2: var(--s2);514  --peach-s3: var(--s3);515  --peach-t0: var(--t0);516  --peach-t1: var(--t1);517  --peach-t2: var(--t2);518  --peach-t3: var(--t3);519  --peach-t4: var(--t4);520  --peach-bg-card: var(--surface-card);521  --peach-border: var(--peach-t3);522  --peach-text-dim: var(--peach-t1);523  background: var(--peach-bg);524  color: var(--peach-t0);525}526527/* Force html/body backgrounds dark when Settings is mounted so the popup528   frame chrome doesn't go white in light theme. */529html:has(.peach-settings-overlay),530html:has(.peach-settings-overlay) body {531  background: #0C0A06;532}533534/* Beat the .light .peach-btn--ghost rule in popup.css which would otherwise535   paint Settings buttons with the light-theme surface color. */536.peach-settings-overlay .stk-card .peach-btn--ghost:not(.peach-icon-btn) {537  background: color-mix(in srgb, var(--peach-t0) 8%, transparent);538  border-color: color-mix(in srgb, var(--peach-t0) 22%, transparent);539  color: var(--peach-t0);540}541.peach-settings-overlay .stk-card .peach-btn--ghost:not(.peach-icon-btn):hover {542  background: color-mix(in srgb, var(--peach-t0) 16%, transparent);543}544545.peach-settings-overlay .stk-shell {546  background: var(--peach-bg);547}548549.peach-settings-overlay .stk-card {550  box-shadow:551    0 1px 0 color-mix(in srgb, var(--peach-t0) 5%, transparent) inset,552    0 8px 20px rgba(0, 0, 0, 0.25);553}554555.peach-settings-overlay .stk-card.is-active {556  box-shadow:557    0 1px 0 color-mix(in srgb, var(--peach-t0) 8%, transparent) inset,558    0 18px 36px rgba(0, 0, 0, 0.42);559}560561:root[data-native="true"] {562  --stack-tab-h: 64px;563  --stack-tab-overlap: 16px;564}565566:root[data-native="true"] .stk-deck {567  height: calc(100dvh - 126px);568  min-height: 520px;569}570571[data-motion="reduce"] .stk-card,572[data-motion="reduce"] .stk-card-body {573  transition: none !important;574}