Bootstrap's secondary and tertiary greys stay light in the dark colour scheme
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- sass, scss
- Área
- accessibility
Línea de trabajo
Empieza por src/resources/formats/html/bootstrap/dist/scss/_variables.scss, donde el issue identifica los valores predeterminados en gris claro, y sigue cómo el bundle oscuro establece los colores de marca. Deriva los valores de los fondos secundario y terciario a partir del fondo oscuro; luego renderiza el ejemplo proporcionado en modo oscuro y comprueba que las cajas afectadas tengan un contraste legible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I have:
- searched the issue tracker for similar issues
- installed the latest version of Quarto CLI
- formatted my issue following the Bug Reports guide
Bug description
In the dark colour scheme of a brand, Bootstrap's grey boxes keep the light greys of the light scheme, under the light text of the dark scheme.
The text then has a contrast of about 1:1 with its box, so it cannot be read (WCAG 1.4.3).
Bootstrap sets $body-secondary-bg: $gray-200 and $body-tertiary-bg: $gray-100 (src/resources/formats/html/bootstrap/dist/scss/_variables.scss, lines 450 and 453).
Quarto builds the dark bundle from the dark brand colours, but nothing moves these two variables away from the light greys.
They reach, among others:
- the disabled form field (
$input-disabled-bg), - the input group text box (
$input-group-addon-bg), - the pagination hover, focus, and disabled boxes (
$pagination-hover-bg,$pagination-focus-bg,$pagination-disabled-bg), - the popover header, the progress bar, and the active list group item.
Deriving $body-secondary-bg and $body-tertiary-bg from the dark background in the dark bundle would fix all of these at once.
| Light | Dark |
|---|---|
Steps to reproduce
_brand.yml:
color:
background:
light: "#ffffff"
dark: "#14181c"
foreground:
light: "#1a1a1a"
dark: "#e8e6e1"
primary: "#1f6f8b"
index.qmd:
---
title: "Grey boxes in the dark scheme"
format: html
brand: _brand.yml
respect-user-color-scheme: true
---
```{=html}
<input class="form-control mb-2" value="Enabled field">
<input class="form-control mb-3" disabled value="Disabled field">
<div class="input-group mb-3">
<span class="input-group-text">Filter</span>
<input class="form-control" placeholder="Search">
</div>
<ul class="pagination">
<li class="page-item disabled"><a class="page-link">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
</ul>
```
Render it, and open it with the system set to dark mode.
Actual behavior
| Scheme | Element | Background | Text | Contrast |
|---|---|---|---|---|
| Light | Disabled field | rgb(233, 236, 239) |
rgb(26, 26, 26) |
14.68:1 |
| Light | Input group text | rgb(248, 249, 250) |
rgb(26, 26, 26) |
16.51:1 |
| Light | Disabled page | rgb(233, 236, 239) |
rgba(26, 26, 26, 0.75) |
6.97:1 |
| Dark | Disabled field | rgb(233, 236, 239) |
rgb(232, 230, 225) |
1.05:1 |
| Dark | Input group text | rgb(248, 249, 250) |
rgb(232, 230, 225) |
1.18:1 |
| Dark | Disabled page | rgb(233, 236, 239) |
rgba(232, 230, 225, 0.75) |
1.04:1 |
The pagination hover and focus boxes are light boxes on the dark page as well, with the link colour as text.
Expected behavior
In the dark scheme, these boxes sit on greys derived from the dark background, and their text keeps at least 4.5:1, as it does in the light scheme.
Your environment
- OS: macOS 27.2.
- Browser: Brave (Chromium).
Quarto check output
Quarto 99.9.9
[✓] Checking environment information...
[✓] Checking versions of quarto binary dependencies...
Pandoc version 3.10.0: OK
Dart Sass version 1.107.1: OK
Deno version 2.9.8: OK
Typst version 0.15.1: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
Version: 99.9.9
commit: 089ba530b3ed4ec156a355d41b6b7de2db3e44ea
- Lenguaje dominante
- JavaScript
- Estrellas
- 6.1k
- Forks
- 478
- Merge medio
- 17 h 53 min
- PR fusionados (30 d)
- 135
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de quarto-dev/quarto-cli
-
accessibility bug embed
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
quarto-dev/quarto-cli#15306 ·
Los mantenedores suelen responder en 1 día
-
bootstrap bug themes
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
quarto-dev/quarto-cli#15304 ·
Los mantenedores suelen responder en 1 día
-
accessibility bug code-blocks html themes
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
quarto-dev/quarto-cli#15303 ·
Los mantenedores suelen responder en 1 día
-
bootstrap bug html tables
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
quarto-dev/quarto-cli#15300 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug html
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
quarto-dev/quarto-cli#15297 ·
Los mantenedores suelen responder en 1 día
Todos los issues de quarto-dev/quarto-cli
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 87/100
OWASP/CheatSheetSeries#2905 ·
Los mantenedores suelen responder en 1 día
-
[P2] PCアプリにバージョンと更新情報の表示がないAbiertodesktop enhancement P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100
AllTheMods/ATM10-Aeronautics#159 ·
Los mantenedores suelen responder en 6 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ComposioHQ/composio#5249 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
zilliztech/memsearch#838 ·
Los mantenedores suelen responder en 1 día