xref: /plugin/annotations/style.css (revision 43d2073c014d8cf78420fa47c6568a01e7249305)
1*43d2073cStracker-user/**
2*43d2073cStracker-user * Annotations plugin — stylesheet.
3*43d2073cStracker-user *
4*43d2073cStracker-user * Colour tokens use DokuWiki's __xxx__ replacement syntax so the theme
5*43d2073cStracker-user * controls the palette.  Hard-coded colours are limited to the annotation-
6*43d2073cStracker-user * specific highlights (amber / green) which are intentionally opinionated.
7*43d2073cStracker-user *
8*43d2073cStracker-user * FF78 ESR safe: no :has(), :not() with selectors, aspect-ratio, container
9*43d2073cStracker-user * queries, or CSS nesting.
10*43d2073cStracker-user */
11*43d2073cStracker-user
12*43d2073cStracker-user/* =========================================================================
13*43d2073cStracker-user   Highlight spans
14*43d2073cStracker-user   ========================================================================= */
15*43d2073cStracker-user
16*43d2073cStracker-user.ann-highlight-open {
17*43d2073cStracker-user    background-color: rgba(251, 191, 36, 0.35);   /* amber-300 @ 35% */
18*43d2073cStracker-user    border-bottom: 2px solid rgba(245, 158, 11, 0.7);
19*43d2073cStracker-user    border-radius: 2px;
20*43d2073cStracker-user    cursor: pointer;
21*43d2073cStracker-user    transition: background-color 0.15s ease;
22*43d2073cStracker-user}
23*43d2073cStracker-user
24*43d2073cStracker-user.ann-highlight-open:hover {
25*43d2073cStracker-user    background-color: rgba(251, 191, 36, 0.55);
26*43d2073cStracker-user}
27*43d2073cStracker-user
28*43d2073cStracker-user.ann-highlight-resolved {
29*43d2073cStracker-user    background-color: rgba(134, 239, 172, 0.30);  /* green-300 @ 30% */
30*43d2073cStracker-user    border-bottom: 2px solid rgba(74, 222, 128, 0.6);
31*43d2073cStracker-user    border-radius: 2px;
32*43d2073cStracker-user    cursor: pointer;
33*43d2073cStracker-user    transition: background-color 0.15s ease;
34*43d2073cStracker-user}
35*43d2073cStracker-user
36*43d2073cStracker-user.ann-highlight-resolved:hover {
37*43d2073cStracker-user    background-color: rgba(134, 239, 172, 0.50);
38*43d2073cStracker-user}
39*43d2073cStracker-user
40*43d2073cStracker-user/* =========================================================================
41*43d2073cStracker-user   Counter bar
42*43d2073cStracker-user   ========================================================================= */
43*43d2073cStracker-user
44*43d2073cStracker-user#ann-counter-bar {
45*43d2073cStracker-user    display: flex;
46*43d2073cStracker-user    align-items: center;
47*43d2073cStracker-user    flex-wrap: wrap;
48*43d2073cStracker-user    gap: 0.5em;
49*43d2073cStracker-user    padding: 0.4em 0.75em;
50*43d2073cStracker-user    margin-bottom: 0.75em;
51*43d2073cStracker-user    font-size: 0.85em;
52*43d2073cStracker-user    background: __background_alt__;
53*43d2073cStracker-user    border: 1px solid __border__;
54*43d2073cStracker-user    border-radius: 4px;
55*43d2073cStracker-user    color: __text__;
56*43d2073cStracker-user}
57*43d2073cStracker-user
58*43d2073cStracker-user.ann-orphan-link {
59*43d2073cStracker-user    color: __link__;
60*43d2073cStracker-user    text-decoration: underline;
61*43d2073cStracker-user    cursor: pointer;
62*43d2073cStracker-user}
63*43d2073cStracker-user
64*43d2073cStracker-user/* =========================================================================
65*43d2073cStracker-user   Gutter markers
66*43d2073cStracker-user   ========================================================================= */
67*43d2073cStracker-user
68*43d2073cStracker-user/* The content area needs relative positioning for gutter markers. */
69*43d2073cStracker-user#dokuwiki__content {
70*43d2073cStracker-user    position: relative;
71*43d2073cStracker-user}
72*43d2073cStracker-user
73*43d2073cStracker-user.ann-gutter-marker {
74*43d2073cStracker-user    position: absolute;
75*43d2073cStracker-user    left: -1.6em;
76*43d2073cStracker-user    width: 1.2em;
77*43d2073cStracker-user    height: 1.2em;
78*43d2073cStracker-user    padding: 0;
79*43d2073cStracker-user    border: none;
80*43d2073cStracker-user    border-radius: 50%;
81*43d2073cStracker-user    background-color: rgba(245, 158, 11, 0.75);
82*43d2073cStracker-user    cursor: pointer;
83*43d2073cStracker-user    line-height: 1;
84*43d2073cStracker-user    font-size: 0.6em;
85*43d2073cStracker-user    transition: background-color 0.15s ease;
86*43d2073cStracker-user}
87*43d2073cStracker-user
88*43d2073cStracker-user.ann-gutter-marker:hover {
89*43d2073cStracker-user    background-color: rgba(245, 158, 11, 1);
90*43d2073cStracker-user}
91*43d2073cStracker-user
92*43d2073cStracker-user/* =========================================================================
93*43d2073cStracker-user   Annotation panel
94*43d2073cStracker-user   ========================================================================= */
95*43d2073cStracker-user
96*43d2073cStracker-user.ann-panel {
97*43d2073cStracker-user    margin: 0.75em 0 1em;
98*43d2073cStracker-user    border: 1px solid __border__;
99*43d2073cStracker-user    border-left: 3px solid rgba(245, 158, 11, 0.7);
100*43d2073cStracker-user    border-radius: 4px;
101*43d2073cStracker-user    background: __background_alt__;
102*43d2073cStracker-user    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
103*43d2073cStracker-user    font-size: 0.9em;
104*43d2073cStracker-user}
105*43d2073cStracker-user
106*43d2073cStracker-user.ann-panel-header {
107*43d2073cStracker-user    display: flex;
108*43d2073cStracker-user    justify-content: flex-end;
109*43d2073cStracker-user    padding: 0.3em 0.5em 0;
110*43d2073cStracker-user}
111*43d2073cStracker-user
112*43d2073cStracker-user/* =========================================================================
113*43d2073cStracker-user   Thread entries (annotation + replies)
114*43d2073cStracker-user   ========================================================================= */
115*43d2073cStracker-user
116*43d2073cStracker-user.ann-thread-entry {
117*43d2073cStracker-user    padding: 0.65em 0.85em;
118*43d2073cStracker-user    border-bottom: 1px solid __border__;
119*43d2073cStracker-user}
120*43d2073cStracker-user
121*43d2073cStracker-user.ann-thread-entry:last-of-type {
122*43d2073cStracker-user    border-bottom: none;
123*43d2073cStracker-user}
124*43d2073cStracker-user
125*43d2073cStracker-user.ann-reply {
126*43d2073cStracker-user    margin-left: 1.5em;
127*43d2073cStracker-user    background: __background__;
128*43d2073cStracker-user    border-left: 2px solid __border__;
129*43d2073cStracker-user    border-radius: 0 0 4px 4px;
130*43d2073cStracker-user}
131*43d2073cStracker-user
132*43d2073cStracker-user/* =========================================================================
133*43d2073cStracker-user   Meta row (avatar, author, time, status)
134*43d2073cStracker-user   ========================================================================= */
135*43d2073cStracker-user
136*43d2073cStracker-user.ann-meta {
137*43d2073cStracker-user    display: flex;
138*43d2073cStracker-user    align-items: center;
139*43d2073cStracker-user    gap: 0.4em;
140*43d2073cStracker-user    margin-bottom: 0.35em;
141*43d2073cStracker-user    flex-wrap: wrap;
142*43d2073cStracker-user}
143*43d2073cStracker-user
144*43d2073cStracker-user.ann-avatar {
145*43d2073cStracker-user    display: inline-flex;
146*43d2073cStracker-user    align-items: center;
147*43d2073cStracker-user    justify-content: center;
148*43d2073cStracker-user    width: 1.8em;
149*43d2073cStracker-user    height: 1.8em;
150*43d2073cStracker-user    border-radius: 50%;
151*43d2073cStracker-user    background: __link__;
152*43d2073cStracker-user    color: #fff;
153*43d2073cStracker-user    font-size: 0.75em;
154*43d2073cStracker-user    font-weight: 700;
155*43d2073cStracker-user    flex-shrink: 0;
156*43d2073cStracker-user}
157*43d2073cStracker-user
158*43d2073cStracker-user.ann-author {
159*43d2073cStracker-user    font-weight: 600;
160*43d2073cStracker-user    color: __text__;
161*43d2073cStracker-user}
162*43d2073cStracker-user
163*43d2073cStracker-user.ann-time {
164*43d2073cStracker-user    color: __text_alt__;
165*43d2073cStracker-user    font-size: 0.85em;
166*43d2073cStracker-user}
167*43d2073cStracker-user
168*43d2073cStracker-user.ann-status {
169*43d2073cStracker-user    display: inline-block;
170*43d2073cStracker-user    padding: 0.1em 0.45em;
171*43d2073cStracker-user    border-radius: 10em;
172*43d2073cStracker-user    font-size: 0.78em;
173*43d2073cStracker-user    font-weight: 600;
174*43d2073cStracker-user    letter-spacing: 0.02em;
175*43d2073cStracker-user}
176*43d2073cStracker-user
177*43d2073cStracker-user.ann-status-open {
178*43d2073cStracker-user    background: rgba(251, 191, 36, 0.25);
179*43d2073cStracker-user    color: #92400e;
180*43d2073cStracker-user    border: 1px solid rgba(245, 158, 11, 0.5);
181*43d2073cStracker-user}
182*43d2073cStracker-user
183*43d2073cStracker-user.ann-status-resolved {
184*43d2073cStracker-user    background: rgba(134, 239, 172, 0.25);
185*43d2073cStracker-user    color: #166534;
186*43d2073cStracker-user    border: 1px solid rgba(74, 222, 128, 0.4);
187*43d2073cStracker-user}
188*43d2073cStracker-user
189*43d2073cStracker-user/* =========================================================================
190*43d2073cStracker-user   Body text and quoted selection
191*43d2073cStracker-user   ========================================================================= */
192*43d2073cStracker-user
193*43d2073cStracker-user.ann-body {
194*43d2073cStracker-user    white-space: pre-wrap;
195*43d2073cStracker-user    word-break: break-word;
196*43d2073cStracker-user    color: __text__;
197*43d2073cStracker-user    margin-bottom: 0.4em;
198*43d2073cStracker-user}
199*43d2073cStracker-user
200*43d2073cStracker-user.ann-quote {
201*43d2073cStracker-user    margin: 0.3em 0 0.5em 0;
202*43d2073cStracker-user    padding: 0.25em 0.6em;
203*43d2073cStracker-user    border-left: 3px solid rgba(245, 158, 11, 0.6);
204*43d2073cStracker-user    color: __text_alt__;
205*43d2073cStracker-user    font-style: italic;
206*43d2073cStracker-user    font-size: 0.9em;
207*43d2073cStracker-user    background: rgba(251, 191, 36, 0.08);
208*43d2073cStracker-user    border-radius: 0 2px 2px 0;
209*43d2073cStracker-user}
210*43d2073cStracker-user
211*43d2073cStracker-user/* =========================================================================
212*43d2073cStracker-user   Action buttons row
213*43d2073cStracker-user   ========================================================================= */
214*43d2073cStracker-user
215*43d2073cStracker-user.ann-actions {
216*43d2073cStracker-user    display: flex;
217*43d2073cStracker-user    gap: 0.4em;
218*43d2073cStracker-user    flex-wrap: wrap;
219*43d2073cStracker-user    margin-top: 0.3em;
220*43d2073cStracker-user}
221*43d2073cStracker-user
222*43d2073cStracker-user.ann-btn {
223*43d2073cStracker-user    display: inline-block;
224*43d2073cStracker-user    padding: 0.2em 0.55em;
225*43d2073cStracker-user    font-size: 0.82em;
226*43d2073cStracker-user    border: 1px solid __border__;
227*43d2073cStracker-user    border-radius: 3px;
228*43d2073cStracker-user    background: __background__;
229*43d2073cStracker-user    color: __text__;
230*43d2073cStracker-user    cursor: pointer;
231*43d2073cStracker-user    line-height: 1.4;
232*43d2073cStracker-user    transition: background-color 0.12s ease;
233*43d2073cStracker-user}
234*43d2073cStracker-user
235*43d2073cStracker-user.ann-btn:hover {
236*43d2073cStracker-user    background: __background_alt__;
237*43d2073cStracker-user}
238*43d2073cStracker-user
239*43d2073cStracker-user.ann-btn-primary {
240*43d2073cStracker-user    background: __link__;
241*43d2073cStracker-user    border-color: __link__;
242*43d2073cStracker-user    color: #fff;
243*43d2073cStracker-user}
244*43d2073cStracker-user
245*43d2073cStracker-user.ann-btn-primary:hover {
246*43d2073cStracker-user    opacity: 0.88;
247*43d2073cStracker-user}
248*43d2073cStracker-user
249*43d2073cStracker-user.ann-btn-danger {
250*43d2073cStracker-user    border-color: #dc2626;
251*43d2073cStracker-user    color: #dc2626;
252*43d2073cStracker-user}
253*43d2073cStracker-user
254*43d2073cStracker-user.ann-btn-danger:hover {
255*43d2073cStracker-user    background: rgba(220, 38, 38, 0.08);
256*43d2073cStracker-user}
257*43d2073cStracker-user
258*43d2073cStracker-user.ann-btn-admin {
259*43d2073cStracker-user    border-color: __border__;
260*43d2073cStracker-user    color: __text_alt__;
261*43d2073cStracker-user    font-size: 0.78em;
262*43d2073cStracker-user}
263*43d2073cStracker-user
264*43d2073cStracker-user.ann-close {
265*43d2073cStracker-user    font-size: 1.1em;
266*43d2073cStracker-user    line-height: 1;
267*43d2073cStracker-user    padding: 0.1em 0.35em;
268*43d2073cStracker-user    border: none;
269*43d2073cStracker-user    background: none;
270*43d2073cStracker-user    color: __text_alt__;
271*43d2073cStracker-user    cursor: pointer;
272*43d2073cStracker-user}
273*43d2073cStracker-user
274*43d2073cStracker-user.ann-close:hover {
275*43d2073cStracker-user    color: __text__;
276*43d2073cStracker-user}
277*43d2073cStracker-user
278*43d2073cStracker-user/* =========================================================================
279*43d2073cStracker-user   Reply form + new-annotation form
280*43d2073cStracker-user   ========================================================================= */
281*43d2073cStracker-user
282*43d2073cStracker-user.ann-reply-form,
283*43d2073cStracker-user.ann-new-form {
284*43d2073cStracker-user    padding: 0.65em 0.85em;
285*43d2073cStracker-user    border-top: 1px solid __border__;
286*43d2073cStracker-user}
287*43d2073cStracker-user
288*43d2073cStracker-user.ann-new-form {
289*43d2073cStracker-user    margin: 0.75em 0 1em;
290*43d2073cStracker-user    border: 1px solid __border__;
291*43d2073cStracker-user    border-left: 3px solid rgba(245, 158, 11, 0.7);
292*43d2073cStracker-user    border-radius: 4px;
293*43d2073cStracker-user    background: __background_alt__;
294*43d2073cStracker-user}
295*43d2073cStracker-user
296*43d2073cStracker-user.ann-body-input {
297*43d2073cStracker-user    display: block;
298*43d2073cStracker-user    width: 100%;
299*43d2073cStracker-user    box-sizing: border-box;
300*43d2073cStracker-user    padding: 0.4em 0.6em;
301*43d2073cStracker-user    font: inherit;
302*43d2073cStracker-user    font-size: 0.9em;
303*43d2073cStracker-user    border: 1px solid __border__;
304*43d2073cStracker-user    border-radius: 3px;
305*43d2073cStracker-user    background: __background__;
306*43d2073cStracker-user    color: __text__;
307*43d2073cStracker-user    resize: vertical;
308*43d2073cStracker-user    margin-bottom: 0.4em;
309*43d2073cStracker-user}
310*43d2073cStracker-user
311*43d2073cStracker-user.ann-body-input:focus {
312*43d2073cStracker-user    outline: 2px solid __link__;
313*43d2073cStracker-user    outline-offset: 1px;
314*43d2073cStracker-user}
315*43d2073cStracker-user
316*43d2073cStracker-user.ann-form-row {
317*43d2073cStracker-user    display: flex;
318*43d2073cStracker-user    gap: 0.4em;
319*43d2073cStracker-user}
320*43d2073cStracker-user
321*43d2073cStracker-user/* =========================================================================
322*43d2073cStracker-user   Selection tooltip
323*43d2073cStracker-user   ========================================================================= */
324*43d2073cStracker-user
325*43d2073cStracker-user.ann-tooltip {
326*43d2073cStracker-user    position: absolute;
327*43d2073cStracker-user    z-index: 9000;
328*43d2073cStracker-user    padding: 0.25em 0.4em;
329*43d2073cStracker-user    background: __background_alt__;
330*43d2073cStracker-user    border: 1px solid __border__;
331*43d2073cStracker-user    border-radius: 4px;
332*43d2073cStracker-user    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
333*43d2073cStracker-user}
334*43d2073cStracker-user
335*43d2073cStracker-user/* =========================================================================
336*43d2073cStracker-user   Orphan drawer
337*43d2073cStracker-user   ========================================================================= */
338*43d2073cStracker-user
339*43d2073cStracker-user.ann-orphan-drawer {
340*43d2073cStracker-user    margin: 1.5em 0 0.5em;
341*43d2073cStracker-user    padding: 0.75em 1em;
342*43d2073cStracker-user    border: 1px dashed __border__;
343*43d2073cStracker-user    border-radius: 4px;
344*43d2073cStracker-user    background: __background_alt__;
345*43d2073cStracker-user}
346*43d2073cStracker-user
347*43d2073cStracker-user.ann-orphan-drawer h4 {
348*43d2073cStracker-user    margin: 0 0 0.3em;
349*43d2073cStracker-user    font-size: 0.95em;
350*43d2073cStracker-user    color: __text_alt__;
351*43d2073cStracker-user}
352*43d2073cStracker-user
353*43d2073cStracker-user.ann-orphan-note {
354*43d2073cStracker-user    font-size: 0.85em;
355*43d2073cStracker-user    color: __text_alt__;
356*43d2073cStracker-user    margin-bottom: 0.75em;
357*43d2073cStracker-user}
358*43d2073cStracker-user
359*43d2073cStracker-user/* =========================================================================
360*43d2073cStracker-user   Resolved annotation panels: shift to green accent
361*43d2073cStracker-user   ========================================================================= */
362*43d2073cStracker-user
363*43d2073cStracker-user.ann-panel[data-status="resolved"] {
364*43d2073cStracker-user    border-left-color: rgba(74, 222, 128, 0.6);
365*43d2073cStracker-user}
366