Code/assets/styles/base.css
2025-05-11 15:47:54 +02:00

410 lines
9.5 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* --- Base.css --- */
.stAppHeader {
visibility: hidden;
}
/* Conteneur principal */
.block-container {
max-width: 1024px !important;
padding-left: 2rem;
padding-right: 2rem;
padding: 0rem 1rem 10rem;
}
.stVerticalBlock {
gap: 0.5rem !important;
}
/* Typographie & structure */
body,
html {
font-family:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial,
sans-serif;
}
.block-container {
max-width: 1024px !important;
padding: 0 1rem 10rem;
}
.stVerticalBlock {
gap: 0.5rem !important;
}
/* Boutons & sliders */
.stButton > button,
.stDownloadButton > button,
.stSlider > div > div {
background-color: darkgreen !important;
color: white !important;
border: 1px solid grey;
}
/* Sidebar (style fixe) */
section[data-testid="stSidebar"] {
background-color: #ccc !important;
color: #111 !important;
}
section[data-testid="stSidebar"] .stButton > button {
background-color: darkgreen !important;
color: white !important;
font-weight: bold;
border: 1px solid #ccc !important;
}
/* Footer commun */
.wide-footer {
width: 100vw;
margin-left: calc(-50vw + 50%);
margin-top: 3rem;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
border-top: 1px solid #ddd;
text-align: center;
padding-top: 1rem;
}
.info-footer {
font-size: 1rem !important;
font-weight: 800;
}
/* En-tête large */
.wide-header {
width: 100vw;
margin-left: calc(-50vw + 50%);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
border-bottom: 1px solid #ddd;
text-align: center;
padding-top: 1rem;
margin-top: -1.25em;
}
.titre-header {
font-size: 2rem !important;
font-weight: bolder !important;
}
/* Accessibilité RGAA pour les onglets */
div[role="radiogroup"] > label {
padding: 0.5em 1em;
border-radius: 0.4em;
margin-right: 0.5em;
cursor: pointer;
border: 1px solid #fff;
}
div[role="radiogroup"] > label[data-selected="true"] {
font-weight: bold;
border: 2px solid #145a1a;
}
/* Styles pour les éléments décoratifs */
section[data-testid="stSidebar"] .decorative-heading {
font-size: 1.25rem;
font-weight: bold;
margin-bottom: 0.5rem;
text-align: center;
color: #145a1a;
}
section[data-testid="stSidebar"] div[role="radiogroup"] {
justify-content: center !important;
display: flex !important;
gap: 1rem; /* Optionnel : espace entre les boutons */
}
/* Corrige la couleur du texte des boutons de la sidebar - identique en light ou en dark */
section[data-testid="stSidebar"] .stButton > button {
background-color: darkgreen !important;
color: white !important;
font-weight: bold !important;
border: 1px solid #ccc !important;
width: 100%;
}
/* Translate Drag and drop and Browse files */
/* Hide original "Drag and drop file here" text */
div[data-testid="stFileUploaderDropzoneInstructions"]
.st-emotion-cache-j7qwjs
> span:nth-of-type(1) {
visibility: hidden;
}
/* Insert French translation */
div[data-testid="stFileUploaderDropzoneInstructions"]
.st-emotion-cache-j7qwjs
> span:nth-of-type(1)::after {
content: "Glissez-déposez votre fichier ici";
visibility: visible;
display: block;
font-size: inherit;
color: inherit;
}
/* Hide original "Browse files" button text */
/* Target the button within the dropzone container for uploader */
div[data-testid="stFileUploaderDropzone"]
button[data-testid="stBaseButton-secondary"] {
color: transparent !important;
position: relative;
}
/* Insert French translation for button */
div[data-testid="stFileUploaderDropzone"]
button[data-testid="stBaseButton-secondary"]::after {
content: "Parcourir les fichiers";
visibility: visible !important;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: block;
font-size: inherit;
color: inherit !important;
}
/* Override Streamlit file uploader limit text to 100 Ko */
div[data-testid="stFileUploaderDropzoneInstructions"] small {
visibility: hidden;
}
div[data-testid="stFileUploaderDropzoneInstructions"] small::after {
content: "Limite 100 Ko par fichier • JSON";
visibility: visible;
display: block;
font-size: inherit;
color: inherit;
margin-top: 0.25em;
}
button[data-testid="stBaseButton-primary"],
button[data-testid="stBaseButton-secondary"] {
color: white !important;
}
button[data-testid="stBaseButton-primary"] p,
,
button[data-testid="stBaseButton-secondary"] p {
color: white !important;
}
.bouton-fictif {
display: inline-flex;
-moz-box-align: center;
align-items: center;
-moz-box-pack: center;
justify-content: center;
padding: 0.25rem 0.75rem;
border-radius: 0.5rem;
min-height: 2.5rem;
margin-bottom: 20px;
line-height: 1;
text-transform: none;
font-size: x-large;
font-family: inherit;
user-select: none;
border: 1px solid rgba(49, 51, 63, 0.2);
background-color: darkgrey !important;
color: darkgreen !important;
font-weight: bold !important;
width: 100%;
letter-spacing: 0.2em;
}
/* Utilisation des variables CSS définies dans les fichiers de thème */
body,
.stApp,
.block-container {
background-color: var(--bg-color) !important;
color: var(--text-color) !important;
}
/* En-tête large */
.wide-header {
background-color: var(--header-bg);
}
.titre-header {
color: var(--header-title);
}
/* Footer commun */
.wide-footer {
background-color: var(--footer-bg);
}
.info-footer {
color: var(--footer-text);
}
/* Accessibilité RGAA pour les onglets */
section:not([data-testid="stSidebar"]) div[role="radiogroup"] > label p {
background-color: var(--radio-bg) !important;
color: var(--radio-text) !important;
}
section:not([data-testid="stSidebar"])
div[role="radiogroup"]
> label[data-selected="true"] {
background-color: var(--radio-selected-bg) !important;
color: var(--radio-selected-text) !important;
}
/* Graphiques */
.stPlotlyChart text {
fill: var(--plot-text) !important;
}
/* Paragraphes */
section:not([data-testid="stSidebar"])
div:not[data-testid="stElementContainer"]
p:not(#Authentification):not(#Theme) {
color: var(--paragraph-color) !important;
}
/* Champs de formulaire */
div[data-baseweb="select"],
section:not([data-testid="stSidebar"]) div[data-baseweb="base-input"],
section[data-testid="stFileUploaderDropzone"] {
border: 1px solid var(--input-border) !important;
border-radius: 5px;
padding: 4px;
}
/* Détails */
details {
border-color: var(--details-border) !important;
}
/* Tables */
table {
border: 1px solid var(--table-border) !important;
border-collapse: collapse;
width: 100%;
margin-bottom: 1.5em;
}
th,
td {
border: 1px solid var(--table-border) !important;
padding: 8px;
text-align: left;
}
/* Accessibilité RGAA */
caption {
caption-side: top;
font-weight: bold;
padding: 0.5em;
text-align: left;
caption-side: bottom;
text-align: center;
}
table[role="table"] th[scope="col"] {
background-color: var(--background-color);
}
/* Fin de Tables */
section:not([data-testid="stSidebar"]) div[data-testid="stSelectbox"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stMultiSelect"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stRadio"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stCheckbox"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stTextInput"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stTextArea"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stAlertContentInfo"] p {
color: var(--text-color) !important;
}
section:not([data-testid="stSidebar"]) hr {
background-color: var(--hr-color) !important;
}
.stPlotlyChart text {
fill: black !important;
text-shadow: none !important;
font-weight: bold !important;
font-size: 14px !important;
font-family: Verdana, sans-serif !important;
}
.conteneur_commentaire {
background: var(--background-color);
padding: 0.5rem;
border-radius: 8px;
margin-bottom: 0.5rem;
border: 1px solid #ccc;
border-radius: 8px;
padding: 1em;
margin-bottom: 1em;
}
.commentaire_auteur {
color: var(--text-color) !important;
margin: 0;
}
.commentaire_contenu {
color: var(--text-color) !important;
margin: 0.5rem 0 0;
}
.conteneur_ticket {
background: var(--background-color);
padding: 0.5rem;
border-radius: 8px;
margin-bottom: 0.5rem;
border: 1px solid #ccc;
border-radius: 8px;
padding: 1em;
margin-bottom: 1em;
}
.ticket_auteur {
color: var(--text-color) !important;
margin: 0;
}
.ticket_contenu {
color: var(--text-color) !important;
margin: 0.5rem 0 0;
}
button[data-testid="stBaseButton-headerNoPadding"] svg {
fill: var(--text-color) !important;
}
details {
border: 1px solid #ccc;
border-radius: 6px;
padding: 0.5em;
margin-bottom: 0.5em;
background-color: var(--background-color);
}
.math-block {
display: block;
text-align: center;
margin: 1em 0;
border: 1px solid var(--math-block-border);
border-radius: 10px;
background: var(--math-block-bg);
font-size: x-large;
color: var(--text-color);
}
.math-block math {
display: inline-block;
}
/* Cache complètement la section dactions Vega */
.vega-actions {
display: none !important;
}
/* Et aussi le <details> parent, sil faut tout masquer */
details[title="Click to view actions"] {
display: none !important;
}
div.stElementContainer.element-container.st-key-nom_utilisateur {
display: none !important;
}