|
116 | 116 | position: relative; |
117 | 117 | } |
118 | 118 | .list-group-item .checklist-checkbox[aria-disabled="true"]::after { |
119 | | - /* small lock glyph to indicate action is restricted */ |
120 | | - content: '\1F512'; /* Unicode lock glyph via codepoint */ |
| 119 | + /* small lock glyph to indicate action is restricted - use Font Awesome solid lock for consistent styling */ |
| 120 | + content: "\f023"; /* Font Awesome: fa-lock */ |
| 121 | + font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", sans-serif; |
| 122 | + font-weight: 900; /* use solid weight */ |
121 | 123 | display: inline-block; |
122 | 124 | position: absolute; |
123 | | - left: 2.25rem; |
| 125 | + /* center the icon over the check ring (bt-checkmark is 2rem wide) */ |
| 126 | + left: 0; |
| 127 | + width: 2rem; |
124 | 128 | top: 50%; |
125 | 129 | transform: translateY(-50%); |
126 | | - font-size: 0.85rem; |
127 | | - color: rgba(0,0,0,0.45); |
| 130 | + text-align: center; |
| 131 | + font-size: 0.95rem; |
| 132 | + /* inherit color from the checkbox container so privacy variants apply */ |
| 133 | + color: currentColor; |
128 | 134 | pointer-events: none; |
129 | 135 | } |
130 | 136 | .list-group-item[data-person-toggle="false"] { |
|
138 | 144 | .list-group-item[data-person-toggle="false"] .text-muted { |
139 | 145 | color: rgba(0,0,0,0.45) !important; |
140 | 146 | } |
| 147 | + |
| 148 | +/* Checklist checkbox visual refinements |
| 149 | + - show a clear outlined ring when unchecked |
| 150 | + - visually emphasize completed state with tinted background |
| 151 | + - keep checkmark visibility controlled by the JS toggling the `d-none` class |
| 152 | +*/ |
| 153 | +.checklist-checkbox { |
| 154 | + display: inline-flex; |
| 155 | + align-items: center; |
| 156 | + justify-content: center; |
| 157 | + /* default check color (primary) – privacy mappings will override this on the container */ |
| 158 | + color: rgba(13,110,253,0.9); |
| 159 | +} |
| 160 | + |
| 161 | +.bt-checkmark { |
| 162 | + position: relative; |
| 163 | + display: inline-block; |
| 164 | + width: 2rem; |
| 165 | + height: 2rem; |
| 166 | +} |
| 167 | + |
| 168 | +.bt-check-ring { |
| 169 | + position: absolute; |
| 170 | + left: 0; |
| 171 | + top: 0; |
| 172 | + width: 100%; |
| 173 | + height: 100%; |
| 174 | + border-radius: 50%; |
| 175 | + border: 2px solid rgba(0,0,0,0.12); |
| 176 | + background: white; |
| 177 | + box-sizing: border-box; |
| 178 | +} |
| 179 | + |
| 180 | +.checklist-checkbox.completed .bt-check-ring { |
| 181 | + background-color: rgba(13,110,253,0.12); |
| 182 | + border-color: rgba(13,110,253,0.6); |
| 183 | +} |
| 184 | + |
| 185 | +.bt-check-icon { |
| 186 | + position: absolute; |
| 187 | + left: 50%; |
| 188 | + top: 50%; |
| 189 | + transform: translate(-50%, -50%); |
| 190 | + z-index: 2; |
| 191 | + font-size: 0.9rem; |
| 192 | + /* inherit color from the checkbox container so privacy variants apply */ |
| 193 | + color: currentColor; |
| 194 | +} |
| 195 | + |
| 196 | +/* Privacy-tinted checkbox variants. The attribute `data-privacy-style` is set |
| 197 | + on the checkbox container with values that match our badge style map |
| 198 | + (e.g., success, secondary, info, primary, dark). Use conservative fallbacks |
| 199 | + to avoid relying on presence of Bootstrap variables in all themes. */ |
| 200 | + |
| 201 | +[data-privacy-style="success"] .bt-check-ring { background-color: rgba(40,167,69,0.12); border-color: rgba(40,167,69,0.6); } |
| 202 | +[data-privacy-style="success"] .checklist-checkbox.completed .bt-check-ring { background-color: rgba(40,167,69,0.14); border-color: rgba(40,167,69,0.8); } |
| 203 | +[data-privacy-style="success"] .bt-check-icon { color: rgba(40,167,69,0.9); } |
| 204 | + |
| 205 | +[data-privacy-style="secondary"] .bt-check-ring { background-color: rgba(108,117,125,0.08); border-color: rgba(108,117,125,0.5); } |
| 206 | +[data-privacy-style="secondary"] .checklist-checkbox.completed .bt-check-ring { background-color: rgba(108,117,125,0.12); border-color: rgba(108,117,125,0.6); } |
| 207 | +[data-privacy-style="secondary"] .bt-check-icon { color: rgba(108,117,125,0.9); } |
| 208 | +.checklist-checkbox[data-privacy-style="success"] .bt-check-ring { background-color: rgba(40,167,69,0.12); border-color: rgba(40,167,69,0.6); } |
| 209 | +.checklist-checkbox[data-privacy-style="success"].completed .bt-check-ring { background-color: rgba(40,167,69,0.14); border-color: rgba(40,167,69,0.8); } |
| 210 | +.checklist-checkbox[data-privacy-style="success"] .bt-check-icon { color: rgba(40,167,69,0.9); } |
| 211 | + |
| 212 | +.checklist-checkbox[data-privacy-style="secondary"] .bt-check-ring { background-color: rgba(108,117,125,0.08); border-color: rgba(108,117,125,0.5); } |
| 213 | +.checklist-checkbox[data-privacy-style="secondary"].completed .bt-check-ring { background-color: rgba(108,117,125,0.12); border-color: rgba(108,117,125,0.6); } |
| 214 | +.checklist-checkbox[data-privacy-style="secondary"] .bt-check-icon { color: rgba(108,117,125,0.9); } |
| 215 | + |
| 216 | +.checklist-checkbox[data-privacy-style="info"] .bt-check-ring { background-color: rgba(23,162,184,0.08); border-color: rgba(23,162,184,0.5); } |
| 217 | +.checklist-checkbox[data-privacy-style="info"].completed .bt-check-ring { background-color: rgba(23,162,184,0.12); border-color: rgba(23,162,184,0.6); } |
| 218 | +.checklist-checkbox[data-privacy-style="info"] .bt-check-icon { color: rgba(23,162,184,0.9); } |
| 219 | + |
| 220 | +.checklist-checkbox[data-privacy-style="primary"] .bt-check-ring { background-color: rgba(13,110,253,0.06); border-color: rgba(13,110,253,0.5); } |
| 221 | +.checklist-checkbox[data-privacy-style="primary"].completed .bt-check-ring { background-color: rgba(13,110,253,0.12); border-color: rgba(13,110,253,0.6); } |
| 222 | +.checklist-checkbox[data-privacy-style="primary"] .bt-check-icon { color: rgba(13,110,253,0.9); } |
| 223 | + |
| 224 | +.checklist-checkbox[data-privacy-style="dark"] .bt-check-ring { background-color: rgba(52,58,64,0.08); border-color: rgba(52,58,64,0.55); } |
| 225 | +.checklist-checkbox[data-privacy-style="dark"].completed .bt-check-ring { background-color: rgba(52,58,64,0.12); border-color: rgba(52,58,64,0.65); } |
| 226 | +.checklist-checkbox[data-privacy-style="dark"] .bt-check-icon { color: rgba(52,58,64,0.95); } |
| 227 | + |
| 228 | +/* Apply the privacy color to the checkbox container so pseudo-elements (lock) and |
| 229 | + check icon inherit the same color via currentColor. */ |
| 230 | +.checklist-checkbox[data-privacy-style="success"] { color: rgba(40,167,69,0.9); } |
| 231 | +.checklist-checkbox[data-privacy-style="secondary"] { color: rgba(108,117,125,0.9); } |
| 232 | +.checklist-checkbox[data-privacy-style="info"] { color: rgba(23,162,184,0.9); } |
| 233 | +.checklist-checkbox[data-privacy-style="primary"] { color: rgba(13,110,253,0.9); } |
| 234 | +.checklist-checkbox[data-privacy-style="dark"] { color: rgba(52,58,64,0.95); } |
| 235 | + |
| 236 | +[data-privacy-style="info"] .bt-check-ring { background-color: rgba(23,162,184,0.08); border-color: rgba(23,162,184,0.5); } |
| 237 | +[data-privacy-style="info"] .checklist-checkbox.completed .bt-check-ring { background-color: rgba(23,162,184,0.12); border-color: rgba(23,162,184,0.6); } |
| 238 | +[data-privacy-style="info"] .bt-check-icon { color: rgba(23,162,184,0.9); } |
| 239 | + |
| 240 | +[data-privacy-style="primary"] .bt-check-ring { background-color: rgba(13,110,253,0.06); border-color: rgba(13,110,253,0.5); } |
| 241 | +[data-privacy-style="primary"] .checklist-checkbox.completed .bt-check-ring { background-color: rgba(13,110,253,0.12); border-color: rgba(13,110,253,0.6); } |
| 242 | +[data-privacy-style="primary"] .bt-check-icon { color: rgba(13,110,253,0.9); } |
| 243 | + |
| 244 | +[data-privacy-style="dark"] .bt-check-ring { background-color: rgba(52,58,64,0.08); border-color: rgba(52,58,64,0.55); } |
| 245 | +[data-privacy-style="dark"] .checklist-checkbox.completed .bt-check-ring { background-color: rgba(52,58,64,0.12); border-color: rgba(52,58,64,0.65); } |
| 246 | +[data-privacy-style="dark"] .bt-check-icon { color: rgba(52,58,64,0.95); } |
0 commit comments