|
1 | | -/* Common native UI styles, scoped to .sq-app; hosts may override --sq-* properties. */ |
2 | | -.sq-app { |
3 | | - color-scheme: light; |
4 | | - --sq-surface: #fff; |
5 | | - --sq-surface-muted: #f5f6f8; |
6 | | - --sq-text: #202327; |
7 | | - --sq-muted: #626a74; |
8 | | - --sq-border: #e3e6e9; |
9 | | - --sq-accent: #175fc5; |
10 | | - --sq-accent-soft: #edf3ff; |
11 | | - --sq-success: #187247; |
12 | | - --sq-success-soft: #edf8f1; |
13 | | - --sq-warning: #8b590f; |
14 | | - --sq-warning-soft: #fff5e7; |
15 | | - --sq-danger: #b33535; |
16 | | - --sq-danger-soft: #fff0ef; |
17 | | - --sq-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; |
18 | | - --sq-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace; |
19 | | - font-family: var(--sq-font); |
20 | | -} |
21 | | -.sq-app[data-theme="dark"] { |
22 | | - color-scheme: dark; |
23 | | - --sq-surface: #16181b; |
24 | | - --sq-surface-muted: #202328; |
25 | | - --sq-text: #e8eaed; |
26 | | - --sq-muted: #a0a7b0; |
27 | | - --sq-border: #33373d; |
28 | | - --sq-accent: #6ea8ff; |
29 | | - --sq-accent-soft: #1c2a40; |
30 | | - --sq-success: #5cc28a; |
31 | | - --sq-success-soft: #18301f; |
32 | | - --sq-warning: #e0a84a; |
33 | | - --sq-warning-soft: #36290f; |
34 | | - --sq-danger: #ff7b72; |
35 | | - --sq-danger-soft: #3a1f1e; |
36 | | -} |
37 | | -@media (prefers-color-scheme: dark) { |
38 | | - .sq-app[data-theme="system"] { |
39 | | - color-scheme: dark; |
40 | | - --sq-surface: #16181b; |
41 | | - --sq-surface-muted: #202328; |
42 | | - --sq-text: #e8eaed; |
43 | | - --sq-muted: #a0a7b0; |
44 | | - --sq-border: #33373d; |
45 | | - --sq-accent: #6ea8ff; |
46 | | - --sq-accent-soft: #1c2a40; |
47 | | - --sq-success: #5cc28a; |
48 | | - --sq-success-soft: #18301f; |
49 | | - --sq-warning: #e0a84a; |
50 | | - --sq-warning-soft: #36290f; |
51 | | - --sq-danger: #ff7b72; |
52 | | - --sq-danger-soft: #3a1f1e; |
53 | | - } |
54 | | -} |
55 | | -.sq-app, .sq-app * { box-sizing: border-box; } |
56 | | -.sq-app { background: var(--sq-surface); color: var(--sq-text); font-size: 14px; line-height: 1.5; } |
57 | | -.sq-app a { color: var(--sq-accent); text-decoration: none; overflow-wrap: anywhere; } |
58 | | -.sq-app a:hover { text-decoration: underline; } |
59 | | -.sq-app a:focus-visible, .sq-app button:focus-visible, .sq-app input:focus-visible, .sq-app select:focus-visible, .sq-app summary:focus-visible { |
60 | | - outline: 3px solid var(--sq-accent); outline-offset: 3px; |
61 | | -} |
62 | | -.sq-app h1 { font-size: 26px; line-height: 1.25; margin: 0 0 10px; letter-spacing: -.5px; } |
63 | | -.sq-app h2 { font-size: 16px; margin: 0 0 12px; } |
64 | | -.sq-app p { margin: 8px 0; } |
65 | | -.sq-app button, .sq-app input, .sq-app select { |
66 | | - font: inherit; border: 1px solid var(--sq-border); border-radius: 6px; |
67 | | - color: var(--sq-text); background: var(--sq-surface); padding: 8px 12px; |
68 | | -} |
69 | | -.sq-app button, .sq-app summary { cursor: pointer; } |
70 | | -.sq-app button:disabled { cursor: default; opacity: .65; } |
71 | | -.sq-app button:hover:not(:disabled) { background: var(--sq-surface-muted); } |
72 | | -.sq-app input { min-width: 0; } |
73 | | -.sq-app.site-frame { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; } |
| 1 | +/* Shared page layout; BaseUI owns component styling and theme tokens. */ |
| 2 | +.sq-app.site-frame { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; } |
74 | 3 | .sq-app .site-header, .sq-app .shell, .sq-app .site-footer { width: min(1200px, calc(100% - 48px)); margin-inline: auto; } |
75 | | -.sq-app .site-header { min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--sq-border); } |
76 | | -.sq-app .brand { display: flex; align-items: center; gap: 9px; color: var(--sq-text); font-weight: 600; font-size: 18px; } |
77 | | -.sq-app .brand-mark { background: var(--sq-text); color: var(--sq-surface); border-radius: 6px; padding: 5px 7px; font-size: 12px; } |
78 | | -.sq-app .environment-pill, .sq-app .site-footer, .sq-app .sq-secondary { color: var(--sq-muted); font-size: 12px; } |
79 | | -.sq-app .site-footer { padding: 20px 0; border-top: 1px solid var(--sq-border); } |
| 4 | +.sq-app .site-header { min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 20px; } |
| 5 | +.sq-app .brand { display: inline-flex; align-items: center; gap: 8px; } |
80 | 6 | .sq-app .shell { padding-block: 28px 48px; } |
81 | | -.sq-app .centered-state { min-height: 100vh; display: grid; place-items: center; } |
82 | 7 | .sq-app .page-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 24px; } |
83 | | -.sq-app .page-heading p { color: var(--sq-muted); font-size: 12px; } |
84 | | -.sq-app .eyebrow { font-size: 12px; margin: 0 0 10px; color: var(--sq-muted); } |
85 | | -.sq-app .page-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; } |
86 | | -.sq-app .sq-refresh { display: flex; align-items: center; gap: 10px; color: var(--sq-muted); font-size: 12px; } |
87 | | -.sq-app .sq-error { padding: 16px; border-radius: 6px; background: var(--sq-danger-soft); } |
88 | | -.sq-app .sq-error p { overflow-wrap: anywhere; } |
89 | | -.sq-app .button-link { display: inline-block; margin-top: 16px; } |
90 | | -.sq-app .state-card { max-width: 700px; } |
91 | | -@media (max-width: 680px) { |
92 | | -.sq-app .site-header, .sq-app .shell, .sq-app .site-footer { width: calc(100% - 32px); } |
93 | | -.sq-app .site-header { gap: 12px; flex-wrap: wrap; padding-block: 14px; } |
94 | | -.sq-app button, .sq-app select, .sq-app input { min-height: 44px; } |
95 | | -} |
96 | | - |
97 | | - |
98 | | -.sq-app .sq-table-scroll { overflow-x: auto; } |
99 | | -.sq-app table { width: 100%; border-collapse: collapse; text-align: left; } |
100 | | -.sq-app th { font-weight: 500; color: var(--sq-muted); font-size: 12px; padding: 10px 12px; border-bottom: 1px solid var(--sq-border); } |
101 | | -.sq-app td { padding: 18px 12px; border-bottom: 1px solid var(--sq-border); vertical-align: top; } |
102 | | -.sq-app th:first-child, .sq-app td:first-child { padding-left: 0; } |
103 | | -.sq-app th:last-child, .sq-app td:last-child { padding-right: 0; } |
104 | | -.sq-app td time { font-size: 12px; color: var(--sq-muted); } |
105 | | -.sq-app .sq-table-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 18px; font-size: 12px; color: var(--sq-muted); } |
106 | | -.sq-app .sq-status, .sq-app .sq-event { display: inline-block; padding: 2px 7px; border-radius: 4px; font-size: 12px; color: var(--sq-accent); background: var(--sq-accent-soft); white-space: nowrap; } |
107 | | -.sq-app .sq-status[data-tone="neutral"] { color: var(--sq-muted); background: var(--sq-surface-muted); } |
108 | | -.sq-app .sq-status[data-tone="success"] { color: var(--sq-success); background: var(--sq-success-soft); } |
109 | | -.sq-app .sq-status[data-tone="danger"] { color: var(--sq-danger); background: var(--sq-danger-soft); } |
110 | | -.sq-app .sq-status[data-tone="warning"] { color: var(--sq-warning); background: var(--sq-warning-soft); } |
111 | | -.sq-app .sq-empty { padding: 35px 0; color: var(--sq-muted); } |
112 | | -.sq-app .sq-breadcrumb { display: flex; gap: 10px; flex-wrap: wrap; color: var(--sq-muted); font-size: 12px; margin-bottom: 24px; } |
113 | | -.sq-app .sq-detail-columns { display: grid; grid-template-columns: 1fr 1.15fr; gap: 38px; } |
114 | | -.sq-app .sq-facts { margin: 0; } |
115 | | -.sq-app .sq-facts > div { padding: 11px 0; border-bottom: 1px solid var(--sq-border); } |
116 | | -.sq-app dt { color: var(--sq-muted); font-size: 12px; margin-bottom: 5px; } |
117 | | -.sq-app dd { margin: 0; overflow-wrap: anywhere; } |
| 8 | +.sq-app .page-actions, .sq-app .sq-refresh, .sq-app .sq-breadcrumb { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; } |
| 9 | +.sq-app .page-actions { margin-top: 12px; } |
| 10 | +.sq-app .sq-breadcrumb { margin-bottom: 24px; } |
| 11 | +.sq-app .sq-table-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 16px; } |
| 12 | +.sq-app .sq-detail-columns { display: grid; grid-template-columns: 1fr 1.15fr; gap: 32px; } |
| 13 | +.sq-app a, .sq-app code, .sq-app dd, .sq-app h1, .sq-app .sq-row-error { overflow-wrap: anywhere; } |
| 14 | +.sq-app .sq-row-error { max-width: 36ch; } |
118 | 15 | @media (max-width: 680px) { |
119 | | -.sq-app .sq-detail-columns { grid-template-columns: 1fr; gap: 20px; } |
| 16 | + .sq-app .site-header, .sq-app .shell, .sq-app .site-footer { width: calc(100% - 32px); } |
| 17 | + .sq-app .site-header { gap: 12px; flex-wrap: wrap; padding-block: 16px; } |
| 18 | + .sq-app .sq-detail-columns { grid-template-columns: 1fr; gap: 24px; } |
120 | 19 | } |
0 commit comments