bots-garden/mini-mepublic Fork
⑂ 48129bd
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

Merge feature/decider-no-tools into main

rickub committed 2026-10-25T17:19:09Z Browse files
48129bd parents: 3656e23 3b53f33
modified dev.team/workspace/templates/style.css +175 -50
@@ -1,70 +1,195 @@
1-* { box-sizing: border-box; }
1+/* ============================================================
2+ Issue Tracker — Design System
3+ ============================================================ */
4+
5+:root {
6+ /* Color palette */
7+ --color-bg: #f4f6f9;
8+ --color-surface: #ffffff;
9+ --color-border: #e2e8f0;
10+ --color-border-strong: #cbd5e1;
11+
12+ --color-text: #1e293b;
13+ --color-text-muted: #64748b;
14+ --color-text-subtle: #94a3b8;
15+
16+ --color-primary: #2563eb;
17+ --color-primary-hover: #1d4ed8;
18+ --color-primary-soft: #eff6ff;
19+
20+ --color-danger: #dc2626;
21+ --color-danger-hover: #b91c1c;
22+
23+ --color-header: #0f172a;
24+
25+ /* Elevation */
26+ --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.1);
27+ --shadow-md: 0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 2px 4px -2px rgba(15, 23, 42, 0.06);
28+ --shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, 0.1), 0 4px 6px -4px rgba(15, 23, 42, 0.05);
29+
30+ /* Radii */
31+ --radius-sm: 6px;
32+ --radius-md: 10px;
33+ --radius-lg: 14px;
34+
35+ /* Spacing scale */
36+ --space-1: 4px;
37+ --space-2: 8px;
38+ --space-3: 12px;
39+ --space-4: 16px;
40+ --space-5: 24px;
41+ --space-6: 32px;
42+
43+ /* Typography */
44+ --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
45+ --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
46+}
47+
48+/* ---------- Reset & base ---------- */
49+*,
50+*::before,
51+*::after { box-sizing: border-box; }
52+
53+html { -webkit-text-size-adjust: 100%; }
54+
255 body {
356 margin: 0;
4- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
5- background: #f5f6f8;
6- color: #1f2933;
7- line-height: 1.5;
57+ font-family: var(--font-sans);
58+ font-size: 15px;
59+ line-height: 1.6;
60+ color: var(--color-text);
61+ background: var(--color-bg);
62+ -webkit-font-smoothing: antialiased;
63+ -moz-osx-font-smoothing: grayscale;
64+}
65+
66+h1, h2, h3 {
67+ margin: 0;
68+ line-height: 1.25;
69+ font-weight: 700;
70+ letter-spacing: -0.01em;
71+ color: var(--color-text);
72+}
73+
74+a { color: var(--color-primary); text-decoration: none; }
75+a:hover { text-decoration: underline; }
76+
77+/* ---------- Header / nav ---------- */
78+header {
79+ background: var(--color-header);
80+ box-shadow: var(--shadow-md);
81+ position: sticky;
82+ top: 0;
83+ z-index: 10;
884 }
85+
986 header nav {
1087 display: flex;
1188 align-items: center;
1289 justify-content: space-between;
90+ max-width: 1040px;
91+ margin: 0 auto;
1392 padding: 14px 24px;
14- background: #1f2933;
1593 }
94+
1695 .brand {
96+ display: inline-flex;
97+ align-items: center;
98+ gap: 8px;
1799 color: #fff;
18100 font-weight: 700;
19101 font-size: 18px;
102+ letter-spacing: -0.01em;
20103 text-decoration: none;
21104 }
22-main { max-width: 900px; margin: 0 auto; padding: 24px; }
23-.page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
24-.page-header h1 { margin: 0; font-size: 24px; }
105+
106+.brand::before {
107+ content: "";
108+ width: 10px;
109+ height: 10px;
110+ border-radius: 3px;
111+ background: var(--color-primary);
112+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);
113+}
114+
115+/* ---------- Layout ---------- */
116+main {
117+ max-width: 1040px;
118+ margin: 0 auto;
119+ padding: 32px 24px 64px;
120+}
121+
122+.page-header {
123+ display: flex;
124+ align-items: center;
125+ justify-content: space-between;
126+ gap: 16px;
127+ margin-bottom: 24px;
128+}
129+
130+.page-header h1 {
131+ font-size: 28px;
132+ letter-spacing: -0.02em;
133+}
134+
135+/* ---------- Buttons ---------- */
25136 .btn {
26- display: inline-block;
27- padding: 8px 14px;
28- border: 1px solid #cbd2d9;
29- border-radius: 6px;
30- background: #fff;
31- color: #1f2933;
137+ display: inline-flex;
138+ align-items: center;
139+ justify-content: center;
140+ gap: 6px;
141+ padding: 9px 16px;
142+ border: 1px solid var(--color-border-strong);
143+ border-radius: var(--radius-sm);
144+ background: var(--color-surface);
145+ color: var(--color-text);
146+ font-family: inherit;
32147 font-size: 14px;
148+ font-weight: 600;
149+ line-height: 1.2;
33150 cursor: pointer;
34151 text-decoration: none;
152+ transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
153+}
154+
155+.btn:hover {
156+ background: #f8fafc;
157+ border-color: var(--color-text-subtle);
158+ text-decoration: none;
159+}
160+
161+.btn:active { transform: translateY(1px); }
162+
163+.btn:focus-visible {
164+ outline: none;
165+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.35);
166+}
167+
168+.btn-primary {
169+ background: var(--color-primary);
170+ border-color: var(--color-primary);
171+ color: #fff;
172+ box-shadow: var(--shadow-sm);
173+}
174+
175+.btn-primary:hover {
176+ background: var(--color-primary-hover);
177+ border-color: var(--color-primary-hover);
178+}
179+
180+.btn-danger {
181+ background: var(--color-danger);
182+ border-color: var(--color-danger);
183+ color: #fff;
184+ box-shadow: var(--shadow-sm);
185+}
186+
187+.btn-danger:hover {
188+ background: var(--color-danger-hover);
189+ border-color: var(--color-danger-hover);
190+}
191+
192+.btn-sm {
193+ padding: 5px 11px;
194+ font-size: 13px;
35195 }
36-.btn-primary { background: #2563eb; border-color: #2563eb; color: #fff; }
37-.btn-danger { background: #dc2626; border-color: #dc2626; color: #fff; }
38-.btn-sm { padding: 4px 10px; font-size: 13px; }
39-.alert { padding: 10px 14px; border-radius: 6px; margin-bottom: 16px; }
40-.alert-error { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
41-.issues-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
42-.issues-table th, .issues-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid #e4e7eb; }
43-.issues-table th { background: #f0f2f5; font-size: 13px; text-transform: uppercase; letter-spacing: 0.03em; color: #52606d; }
44-.issues-table a { color: #2563eb; text-decoration: none; }
45-.row-actions { display: flex; gap: 6px; align-items: center; }
46-.badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; text-transform: capitalize; }
47-.badge-open { background: #dbeafe; color: #1e40af; }
48-.badge-in_progress { background: #fef3c7; color: #92400e; }
49-.badge-done { background: #d1fae5; color: #065f46; }
50-.badge-closed { background: #e5e7eb; color: #374151; }
51-.badge-low { background: #e0f2fe; color: #075985; }
52-.badge-medium { background: #fef3c7; color: #92400e; }
53-.badge-high { background: #ffedd5; color: #9a3412; }
54-.badge-critical { background: #fee2e2; color: #991b1b; }
55-.issue-form { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
56-.form-group { margin-bottom: 16px; }
57-.form-group label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; }
58-.form-group input, .form-group textarea, .form-group select {
59- width: 100%; padding: 9px 12px; border: 1px solid #cbd2d9; border-radius: 6px; font-size: 14px; font-family: inherit;
60-}
61-.form-row { display: flex; gap: 16px; }
62-.form-row .form-group { flex: 1; }
63-.actions { display: flex; gap: 10px; margin-top: 8px; }
64-.issue-detail { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
65-.issue-detail h2 { margin-top: 0; }
66-.issue-detail .description { white-space: pre-wrap; color: #3e4c59; }
67-.meta { width: 100%; border-collapse: collapse; margin: 16px 0; }
68-.meta td { padding: 8px 10px; border-bottom: 1px solid #e4e7eb; }
69-.meta td:first-child { font-weight: 600; width: 120px; color: #52606d; }
70-.empty { color: #52606d; }
@@ -1,70 +1,195 @@
1-* { box-sizing: border-box; }1+/* ============================================================
2+ Issue Tracker — Design System
3+ ============================================================ */
4+
5+:root {
6+ /* Color palette */
7+ --color-bg: #f4f6f9;
8+ --color-surface: #ffffff;
9+ --color-border: #e2e8f0;
10+ --color-border-strong: #cbd5e1;
11+
12+ --color-text: #1e293b;
13+ --color-text-muted: #64748b;
14+ --color-text-subtle: #94a3b8;
15+
16+ --color-primary: #2563eb;
17+ --color-primary-hover: #1d4ed8;
18+ --color-primary-soft: #eff6ff;
19+
20+ --color-danger: #dc2626;
21+ --color-danger-hover: #b91c1c;
22+
23+ --color-header: #0f172a;
24+
25+ /* Elevation */
26+ --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.1);
27+ --shadow-md: 0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 2px 4px -2px rgba(15, 23, 42, 0.06);
28+ --shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, 0.1), 0 4px 6px -4px rgba(15, 23, 42, 0.05);
29+
30+ /* Radii */
31+ --radius-sm: 6px;
32+ --radius-md: 10px;
33+ --radius-lg: 14px;
34+
35+ /* Spacing scale */
36+ --space-1: 4px;
37+ --space-2: 8px;
38+ --space-3: 12px;
39+ --space-4: 16px;
40+ --space-5: 24px;
41+ --space-6: 32px;
42+
43+ /* Typography */
44+ --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
45+ --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
46+}
47+
48+/* ---------- Reset & base ---------- */
49+*,
50+*::before,
51+*::after { box-sizing: border-box; }
52+
53+html { -webkit-text-size-adjust: 100%; }
54+
2 body {55 body {
3 margin: 0;56 margin: 0;
4- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;57+ font-family: var(--font-sans);
5- background: #f5f6f8;58+ font-size: 15px;
6- color: #1f2933;59+ line-height: 1.6;
7- line-height: 1.5;60+ color: var(--color-text);
61+ background: var(--color-bg);
62+ -webkit-font-smoothing: antialiased;
63+ -moz-osx-font-smoothing: grayscale;
64+}
65+
66+h1, h2, h3 {
67+ margin: 0;
68+ line-height: 1.25;
69+ font-weight: 700;
70+ letter-spacing: -0.01em;
71+ color: var(--color-text);
72+}
73+
74+a { color: var(--color-primary); text-decoration: none; }
75+a:hover { text-decoration: underline; }
76+
77+/* ---------- Header / nav ---------- */
78+header {
79+ background: var(--color-header);
80+ box-shadow: var(--shadow-md);
81+ position: sticky;
82+ top: 0;
83+ z-index: 10;
8 }84 }
85+
9 header nav {86 header nav {
10 display: flex;87 display: flex;
11 align-items: center;88 align-items: center;
12 justify-content: space-between;89 justify-content: space-between;
90+ max-width: 1040px;
91+ margin: 0 auto;
13 padding: 14px 24px;92 padding: 14px 24px;
14- background: #1f2933;
15 }93 }
94+
16 .brand {95 .brand {
96+ display: inline-flex;
97+ align-items: center;
98+ gap: 8px;
17 color: #fff;99 color: #fff;
18 font-weight: 700;100 font-weight: 700;
19 font-size: 18px;101 font-size: 18px;
102+ letter-spacing: -0.01em;
20 text-decoration: none;103 text-decoration: none;
21 }104 }
22-main { max-width: 900px; margin: 0 auto; padding: 24px; }105+
23-.page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }106+.brand::before {
24-.page-header h1 { margin: 0; font-size: 24px; }107+ content: "";
108+ width: 10px;
109+ height: 10px;
110+ border-radius: 3px;
111+ background: var(--color-primary);
112+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);
113+}
114+
115+/* ---------- Layout ---------- */
116+main {
117+ max-width: 1040px;
118+ margin: 0 auto;
119+ padding: 32px 24px 64px;
120+}
121+
122+.page-header {
123+ display: flex;
124+ align-items: center;
125+ justify-content: space-between;
126+ gap: 16px;
127+ margin-bottom: 24px;
128+}
129+
130+.page-header h1 {
131+ font-size: 28px;
132+ letter-spacing: -0.02em;
133+}
134+
135+/* ---------- Buttons ---------- */
25 .btn {136 .btn {
26- display: inline-block;137+ display: inline-flex;
27- padding: 8px 14px;138+ align-items: center;
28- border: 1px solid #cbd2d9;139+ justify-content: center;
29- border-radius: 6px;140+ gap: 6px;
30- background: #fff;141+ padding: 9px 16px;
31- color: #1f2933;142+ border: 1px solid var(--color-border-strong);
143+ border-radius: var(--radius-sm);
144+ background: var(--color-surface);
145+ color: var(--color-text);
146+ font-family: inherit;
32 font-size: 14px;147 font-size: 14px;
148+ font-weight: 600;
149+ line-height: 1.2;
33 cursor: pointer;150 cursor: pointer;
34 text-decoration: none;151 text-decoration: none;
152+ transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
153+}
154+
155+.btn:hover {
156+ background: #f8fafc;
157+ border-color: var(--color-text-subtle);
158+ text-decoration: none;
159+}
160+
161+.btn:active { transform: translateY(1px); }
162+
163+.btn:focus-visible {
164+ outline: none;
165+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.35);
166+}
167+
168+.btn-primary {
169+ background: var(--color-primary);
170+ border-color: var(--color-primary);
171+ color: #fff;
172+ box-shadow: var(--shadow-sm);
173+}
174+
175+.btn-primary:hover {
176+ background: var(--color-primary-hover);
177+ border-color: var(--color-primary-hover);
178+}
179+
180+.btn-danger {
181+ background: var(--color-danger);
182+ border-color: var(--color-danger);
183+ color: #fff;
184+ box-shadow: var(--shadow-sm);
185+}
186+
187+.btn-danger:hover {
188+ background: var(--color-danger-hover);
189+ border-color: var(--color-danger-hover);
190+}
191+
192+.btn-sm {
193+ padding: 5px 11px;
194+ font-size: 13px;
35 }195 }
36-.btn-primary { background: #2563eb; border-color: #2563eb; color: #fff; }
37-.btn-danger { background: #dc2626; border-color: #dc2626; color: #fff; }
38-.btn-sm { padding: 4px 10px; font-size: 13px; }
39-.alert { padding: 10px 14px; border-radius: 6px; margin-bottom: 16px; }
40-.alert-error { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
41-.issues-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
42-.issues-table th, .issues-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid #e4e7eb; }
43-.issues-table th { background: #f0f2f5; font-size: 13px; text-transform: uppercase; letter-spacing: 0.03em; color: #52606d; }
44-.issues-table a { color: #2563eb; text-decoration: none; }
45-.row-actions { display: flex; gap: 6px; align-items: center; }
46-.badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; text-transform: capitalize; }
47-.badge-open { background: #dbeafe; color: #1e40af; }
48-.badge-in_progress { background: #fef3c7; color: #92400e; }
49-.badge-done { background: #d1fae5; color: #065f46; }
50-.badge-closed { background: #e5e7eb; color: #374151; }
51-.badge-low { background: #e0f2fe; color: #075985; }
52-.badge-medium { background: #fef3c7; color: #92400e; }
53-.badge-high { background: #ffedd5; color: #9a3412; }
54-.badge-critical { background: #fee2e2; color: #991b1b; }
55-.issue-form { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
56-.form-group { margin-bottom: 16px; }
57-.form-group label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; }
58-.form-group input, .form-group textarea, .form-group select {
59- width: 100%; padding: 9px 12px; border: 1px solid #cbd2d9; border-radius: 6px; font-size: 14px; font-family: inherit;
60-}
61-.form-row { display: flex; gap: 16px; }
62-.form-row .form-group { flex: 1; }
63-.actions { display: flex; gap: 10px; margin-top: 8px; }
64-.issue-detail { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
65-.issue-detail h2 { margin-top: 0; }
66-.issue-detail .description { white-space: pre-wrap; color: #3e4c59; }
67-.meta { width: 100%; border-collapse: collapse; margin: 16px 0; }
68-.meta td { padding: 8px 10px; border-bottom: 1px solid #e4e7eb; }
69-.meta td:first-child { font-weight: 600; width: 120px; color: #52606d; }
70-.empty { color: #52606d; }