main
css 290 lines 6.67 KB
Raw
1 /* Button Styles */
2 .button {
3 background: var(--color-panel);
4 font-weight: 500;
5 padding: 0.5rem 1.5rem;
6 border-radius: 6px;
7 cursor: pointer;
8 border: 1px solid var(--color-border);
9 color: var(--color-text);
10 font-size: 0.875rem;
11 font-family: "Rubik", Arial, Helvetica, sans-serif;
12 transition: background-color 0.18s cubic-bezier(0.4, 0, 0.2, 1),
13 border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1),
14 color 0.18s cubic-bezier(0.4, 0, 0.2, 1),
15 box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1),
16 filter 0.18s cubic-bezier(0.4, 0, 0.2, 1);
17 min-height: 2em; /* Standard height */
18 display: inline-flex;
19 align-items: center;
20 justify-content: center;
21 box-sizing: border-box;
22 }
23
24 .text-button {
25 appearance: none;
26 background-color: transparent;
27 border: none;
28 border-radius: 5px;
29 color: var(--color-text);
30 cursor: pointer;
31 display: inline-flex;
32 align-items: center;
33 justify-content: center;
34 gap: var(--spacing-xs);
35 font-family: "Rubik", Arial, Helvetica, sans-serif;
36 font-size: 0.78rem;
37 line-height: 1.2;
38 opacity: 0.82;
39 padding: 6px var(--spacing-sm);
40 transition: background-color 0.16s ease, color 0.16s ease, opacity 0.16s ease;
41 }
42
43 .text-button:hover:not(:disabled) {
44 opacity: 1;
45 background-color: var(--color-background-hover);
46 }
47
48 .text-button:active:not(:disabled) {
49 opacity: 0.5;
50 }
51
52 .text-button:disabled {
53 opacity: 0.4;
54 cursor: not-allowed;
55 }
56
57 .text-button .material-symbols-outlined,
58 .text-button .material-icons-outlined {
59 font-size: 1rem;
60 line-height: 1;
61 flex-shrink: 0;
62 }
63
64 .text-button svg {
65 width: 14px;
66 height: 14px;
67 flex-shrink: 0;
68 }
69
70 .text-button p {
71 margin-block: 0;
72 }
73
74 .button.confirm {
75 background: var(--color-highlight);
76 color: #fff;
77 }
78
79 .button.cancel {
80 background: var(--color-panel);
81 color: var(--color-accent);
82 /* border: 1px solid var(--color-accent); */
83 }
84
85 .button:hover {
86 filter: brightness(1.05);
87 box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-primary) 35%, transparent),
88 0 6px 14px rgba(0, 0, 0, 0.12);
89 }
90
91 .button.cancel:hover {
92 background: var(--color-panel);
93 border-color: var(--color-accent);
94 color: var(--color-accent);
95 }
96
97 .buttons-container {
98 display: flex;
99 justify-content: space-between;
100 align-items: center;
101 }
102
103 .buttons-left {
104 display: flex;
105 justify-content: flex-start;
106 gap: 0.5em;
107 }
108
109 .buttons-right {
110 display: flex;
111 justify-content: flex-end;
112 gap: 0.5em;
113 }
114
115 .icon-button {
116 padding-left: 0.75rem;
117 padding-right: 0.75rem;
118 }
119
120 /* Action Header Buttons - for modal headers with confirm/cancel/edit/delete actions */
121 .btn-action-header {
122 padding: 0.4rem 0.6rem;
123 display: flex;
124 align-items: center;
125 gap: 0.25rem;
126 background: var(--color-message-bg);
127 color: var(--color-text);
128 border: 1px solid var(--color-border);
129 border-radius: 4px;
130 cursor: pointer;
131 transition: background-color 0.15s ease, border-color 0.15s ease,
132 color 0.15s ease, box-shadow 0.15s ease;
133 }
134
135 .btn-action-header .material-symbols-outlined {
136 font-size: 18px;
137 }
138
139 .btn-action-header:hover {
140 border-color: var(--color-primary);
141 color: var(--color-primary);
142 box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-primary) 20%, transparent);
143 }
144
145 .btn-action-header.confirm:hover {
146 border-color: #4CAF50;
147 color: #4CAF50;
148 background: var(--color-background);
149 }
150
151 .btn-action-header.cancel:hover {
152 border-color: var(--color-accent);
153 color: var(--color-accent);
154 background: var(--color-background);
155 }
156
157 .btn-action-header.delete:hover {
158 border-color: var(--color-accent);
159 color: var(--color-accent);
160 }
161
162 .btn-action-header.edit:hover,
163 .btn-action-header.copy:hover,
164 .btn-action-header.copy-all:hover,
165 .btn-action-header.copy-content:hover {
166 border-color: var(--color-primary);
167 color: var(--color-primary);
168 }
169
170 /* Table/Row Action Buttons - for inline row actions (run, edit, delete, etc.) */
171 .btn-action {
172 background: none;
173 border: 1px solid var(--color-border);
174 padding: 0.25rem;
175 color: var(--color-text);
176 display: inline-flex;
177 align-items: center;
178 justify-content: center;
179 border-radius: 4px;
180 cursor: pointer;
181 transition: background-color 0.15s ease, border-color 0.15s ease,
182 color 0.15s ease, box-shadow 0.15s ease;
183 }
184
185 .btn-action .material-symbols-outlined {
186 font-size: 18px;
187 }
188
189 .btn-action:hover {
190 background: var(--color-panel);
191 border-color: var(--color-primary);
192 color: var(--color-primary);
193 box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-primary) 20%, transparent),
194 0 4px 10px rgba(0, 0, 0, 0.1);
195 }
196
197 .btn-action.delete:hover {
198 background: var(--color-panel);
199 border-color: var(--color-accent);
200 color: var(--color-accent);
201 }
202
203 /* Icon Button - minimal padding for icon-only buttons */
204 .btn-icon {
205 background: transparent;
206 border: 1px solid var(--color-border);
207 color: var(--color-text);
208 padding: 0.25rem;
209 display: flex;
210 align-items: center;
211 border-radius: 4px;
212 cursor: pointer;
213 transition: background-color 0.15s ease, border-color 0.15s ease,
214 color 0.15s ease, box-shadow 0.15s ease;
215 }
216
217 .btn-icon:hover:not(:disabled) {
218 background: var(--color-panel);
219 border-color: var(--color-primary);
220 color: var(--color-text);
221 box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-primary) 20%, transparent);
222 }
223
224 .btn-icon:disabled {
225 opacity: 0.4;
226 cursor: not-allowed;
227 }
228
229 .btn-icon .material-symbols-outlined {
230 font-size: 20px;
231 }
232
233 /* Actions wrapper for grouping action buttons */
234 .actions-wrapper {
235 display: flex;
236 align-items: center;
237 gap: 0.25rem;
238 }
239
240 /* Inline Confirmation State */
241 .confirming {
242 border-color: var(--color-highlight) !important;
243 background-color: var(--color-highlight) !important;
244 color: #fff !important;
245 }
246
247 .confirming:hover {
248 filter: brightness(1.1);
249 }
250
251 /* Standard icon-only action button for destructive actions */
252 .btn-icon-action {
253 display: inline-flex;
254 align-items: center;
255 justify-content: center;
256 background: transparent;
257 border: 1px solid var(--color-border);
258 border-radius: 0.25rem;
259 color: var(--color-primary);
260 cursor: pointer;
261 padding: 0.25rem;
262 width: 1.75rem;
263 height: 1.75rem;
264 transition: background-color 0.18s cubic-bezier(0.4, 0, 0.2, 1),
265 border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1),
266 color 0.18s cubic-bezier(0.4, 0, 0.2, 1),
267 box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
268 flex-shrink: 0;
269 }
270
271 .btn-icon-action .material-symbols-outlined,
272 .btn-icon-action .material-icons-outlined {
273 font-size: 1rem;
274 }
275
276 .btn-icon-action:hover {
277 border-color: var(--color-primary);
278 background-color: var(--color-background-hover);
279 box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-primary) 20%, transparent);
280 }
281
282 .btn-icon-action:active {
283 background-color: var(--color-background-hover);
284 color: var(--color-primary);
285 }
286
287 .btn-icon-action.danger:hover {
288 border-color: #e57373;
289 color: #e57373;
290 }