X-Git-Url: https://git.rapsys.eu/.gitweb.cgi/airbundle/blobdiff_plain/a7223edbca1b62d04c76fd8534765f7f4fffc0c8..ec635127291810bf020cbbe32898c23c2c52189b:/Resources/public/css/screen.css diff --git a/Resources/public/css/screen.css b/Resources/public/css/screen.css index 1b8a10e..c63abc3 100644 --- a/Resources/public/css/screen.css +++ b/Resources/public/css/screen.css @@ -18,53 +18,195 @@ a::first-letter { color: #00c3f9; } +/* Font styling */ +html, body, dd, li, p, td { + /* DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/ + font-family: 'Droid Sans', 'Symbola', 'DejaVu Sans', 'FreeSans', sans-serif; + font-display: swap; +} + +button, code, input, option, optgroup, pre, select, textarea { + font-family: 'Droid Sans Mono', monospace; + font-display: swap; +} + +dt, h1, h2, h3, h4, h5, h6, label, legend, th, details { + font-family: 'Droid Serif', serif; + font-display: swap; +} + /* Default styling */ h1 { font-size: 2rem; - font-family: 'La Belle Aurore'; margin: 1.34rem 0; } h2 { font-size: 1.5rem; - font-family: 'La Belle Aurore'; margin: 1.245rem 0; } h3 { font-size: 1.17rem; - font-family: 'La Belle Aurore'; margin: 1.17rem 0; } h4 { font-size: 1rem; - font-family: 'La Belle Aurore'; margin: 1.33rem 0; } h5 { - font-size: .83rem; - font-family: 'La Belle Aurore'; + font-size: .85rem; margin: 1.386rem 0; } h6 { font-size: .67rem; - font-family: 'La Belle Aurore'; margin: 1.561rem 0; } -p { +p, +dt { + font-size: 1rem; +} + +dd { + font-size: .9rem; } body { display: flex; flex-flow: column wrap; - font-family: 'Irish Grover'; color: #066; } +/* Form */ +label { + font-size: .8rem; + white-space: nowrap; +} + +button, +input, +select, +option, +optgroup, +textarea { + border: .05rem solid #00c3f9; + border-radius: .2rem; + font-size: .75rem; + color: #066; + background-color: transparent; + box-sizing: border-box; +} + +form { + display: flex; + flex-direction: column; + flex-wrap: wrap; + text-align: center; +} + +/*form header .message { + margin: 0; +}*/ + +form .row { + flex-direction: row; +} + +form div { + display: flex; + align-content: space-around; + justify-content: center; + flex-direction: column; + margin-bottom: .5rem; +} + +form div:only-child, +form div:last-child, +form div:last-of-type { + margin-bottom: 0; +} + +/*form section div { + display: flex; + flex-direction: row; + align-content: space-around; + justify-content: center; +} + +form section section { + display: flex; + flex-direction: column; +}*/ + +form label { + width: 12rem; + /*padding: .2rem 1rem .2rem 0;*/ + padding-right: 1rem; + text-align: right; +} + +form input, +form option, +form optgroup, +form select, +form textarea, +form section section { + width: 24rem; + padding: .1rem; +} + +form select { + padding: 0 .1rem .1rem .1rem; +} + +form button { + width: 10rem; + /*margin: .5rem auto 0 auto;*/ + margin: 0 auto; + padding: 0 .1rem .2rem .1rem; +} + +form .message { + margin: .25rem 0 0 0; +} + +/* Vertical form */ +.col label { + width: 8rem; + padding-right: 0; + padding-bottom: .2rem; + text-align: center; +} + +.col input, +.col option, +.col optgroup, +.col select, +.col textarea { + width: 8rem; +} + +.col button { + width: 8rem; +} + +/*.col section { + width: auto; +}*/ + +.col .row { + flex-direction: column; +} + +.col div.date { + flex-direction: row; + justify-content: space-between; +} + /* Header */ #header { border: .1rem solid #00c3f9; @@ -72,45 +214,30 @@ body { border-radius: 0 0 .5rem .5rem; margin: .5rem; margin-top: 0; - padding: .5rem; - left: 0; - right: 0; display: flex; + flex-direction: row; + flex-wrap: nowrap; justify-content: space-between; - min-width: 180px; + /*min-width: 180px;*/ } #header h1 { - order: 0; padding: 0; margin: 0; vertical-align: middle; white-space: nowrap; } -#header h1 a { - display: flex; -} - -/*#header h2 { - order: 1; - font-size: 1.5rem; - margin: 0; - white-space: nowrap; +#header img { + margin: .5rem; } -#header h2:before { - content: ">\00a0"; -}*/ - #header nav { - order: 3; - margin-left: auto; display: flex; - flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; + padding: .5rem; } #header nav h2 { @@ -118,306 +245,383 @@ body { } #header nav a { + flex-grow: 1; text-align: center; - border-radius: .25rem; - padding: .375rem .5rem .25rem .5rem; - margin: 0 0 .1rem .5rem; + border-radius: .2rem; + padding: .25rem .5rem; + margin: 0 0 0 .5rem; border: .1rem solid #00c3f9; font-weight: bold; background-color: #cff; } -/* Message */ -div.error::before, -div.error::after { - content: "⚠"; - line-height: 100%; - margin: auto 0; +#header nav a:first-child { + margin: 0; } -div.error { +/* Message */ +.message { + margin: 0 .5rem .5rem; display: flex; flex-direction: row; justify-content: space-between; - border: .05rem solid #c33333; - background-color: #f9c3c3; - color: #c33333; font-size: .9rem; padding: .2rem; border-radius: .2rem; text-align: center; + border: .05rem solid transparent; } -div.flash { - margin: 0 .5rem .5rem; -} - -/*ul#error::before, -ul#error::after, -ul.error::before, -ul.error::after, -ul#notice::before, -ul#notice::after { - content: "⚠"; - padding: .1rem .5rem 0 .5rem; - position: absolute; -} - -ul#error::before, -ul#error::after { - padding-top: .2rem; +.message::before, +.message::after { + margin: auto 0; + padding: 0 .25rem; } -ul#notice::before, -ul#notice::after { - content: "ℹ"; - padding-top: .3rem; +p.message { + margin: .5rem; } -ul#notice::after, -ul#error::after { - margin-left: 37.8rem; +.mortal, +.mortal button, +.mortal select { + border-color: #c33333; + background-color: #f9c3c3; + color: #c33333; } -ul.error::after { - margin-left: 34rem; +.dangerous, +.mortal { + border-radius: .2rem; + padding: .5rem 0; } -ul#notice, -ul#error, -ul.error { - display: flex; - flex-direction: column; - justify-content: center; - box-sizing: border-box; - text-align: center; - border: .05rem solid #c33333; +.error { + border-color: #c33333; background-color: #f9c3c3; color: #c33333; - font-size: .9rem; - padding: .2rem; - border-radius: .2rem; - width: 40rem; - margin: 0 auto .5rem auto; } -ul.error { - width: 36rem; - margin: .2rem 0 0 0; +.error::before, +.error::after { + /*XXX: display /!\ symbol */ + content: "⚠"; } -ul#notice { - border: .05rem solid #3333c3; +.notice { + border-color: #3333c3; background-color: #c3c3f9; color: #3333c3; } -ul.error { - margin-top: .2rem; -}*/ +.notice::before, +.notice::after { + /*XXX: see https://www.fileformat.info/info/unicode/char/2139/fontsupport.htm + * DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/ + /*XXX: display i symbol */ + content: "ℹ"; + /*XXX: display # symbol */ + /*content: "⌘";*/ +} + +.dangerous, +.dangerous button, +.dangerous select { + border-color: #c39333; + background-color: #f9c333; + color: #936333; +} + +.warning { + border-color: #c39333; + background-color: #f9c333; + color: #936333; +} + +.warning::before, +.warning::after { + /*XXX: see https://www.fileformat.info/info/unicode/char/2139/fontsupport.htm + * DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/ + content: "?"; + /*XXX: display # symbol */ + /*content: "⌘";*/ +} -/* Content */ +/* Dashboard */ +#dashboard, #form, -#content, -#policy, -#dashboard { +#recover, +#regulation { border: .1rem solid #00c3f9; border-radius: .5rem; margin: .5rem; margin-top: 0; - overflow: hidden; - padding: .5rem; + display: flex; + flex-direction: column; } -section h2 { +#dashboard h2, +#form h2, +#recover h2, +#regulation h2 { background-color: #cff; border-bottom: .1rem solid #00c3f9; - margin: -.5rem -.5rem .5rem -.5rem; + margin: 0; padding: .5rem; - padding-bottom: .4rem; } -/* Form */ -#policy, -form { - display: flex; - flex-direction: column; - border: .05rem solid #00c3f9; - border-radius: .2rem; - padding: .5rem; +#dashboard h3 { + background-color: #cff; + border-bottom: .1rem solid #00c3f9; + margin: 0; + padding: .3rem; +} + +#dashboard h4 { + background-color: #cff; + border-bottom: .1rem solid #00c3f9; + margin: 0; + padding: .2rem; } -#policy section, -form section { - margin-bottom: 1rem; +#form form, +#recover form { + padding: .5rem; } -#policy section:only-child, -#policy section:last-child, -#policy section:last-of-type, -form section:only-child, -form section:last-child, -form section:last-of-type { - margin-bottom: .5rem; +/*#dashboard .calendar h3 { + margin: -.3rem; + margin-bottom: .3rem; +}*/ + +#dashboard .subgrid .cell { + padding: .3rem; } -form section section, -form section section:only-child, -form section section:last-child, -form section section:last-of-type { - width: 50%; - margin-bottom: 0; +#dashboard .subgrid h4 { + margin: -.3rem; + margin-bottom: .3rem; } -#policy div, -form div { +/*#dashboard h4 { + background-color: #cff; + border-bottom: .1rem solid #00c3f9; + margin: -.5rem; + margin-bottom: .5rem; + padding: .1rem; +}*/ + +#dashboard .panel { display: flex; flex-direction: row; - justify-content: space-around; - margin-bottom: .5rem; + flex-wrap: nowrap; + place-content: space-between; + border: 0; + margin: 0; + padding: 0 .5rem .5rem .5rem; } -#policy div:only-child, -#policy div:last-child, -#policy div:last-of-type, -form div:only-child, -form div:last-child, -form div:last-of-type { - margin-bottom: 0; +#dashboard .panel:only-child, +#dashboard .panel:first-child, +#dashboard .panel:first-of-type { + padding-top: .5rem; } -form section div.error { - margin: 0 1rem; + +#dashboard .panel:only-child, +#dashboard .panel:last-child, +#dashboard .panel:last-of-type { + padding-bottom: .5rem; } -form section section div.error { - margin: .25rem 0 0 0; +#dashboard .candidate section, +#dashboard .location section { + flex-direction: column; + flex-grow: 1; + border: .1rem solid #00c3f9; + border-radius: .3rem; + padding: 0; } -label { - min-width: 5rem; - font-size: .9rem; - padding: .2rem 0; - text-align: right; - white-space: nowrap; +#dashboard .location h4 { + border-width: 0; } -button, -input, -select, -textarea { - box-sizing: border-box; - width: 100%; - padding: .1rem; - border: .05rem solid #00c3f9; +#dashboard .grid { + display: flex; + flex-flow: row wrap; + border-style: solid; + border-color: #00c3f9; border-radius: .2rem; - font-size: .8rem; - color: #066; + /*border-width: .1rem 0 0 .1rem;*/ + flex-grow: 1; + /*box-sizing: inherit;*/ + box-sizing: border-box; + border-collapse: collapse; + /*box-sizing: border-box; + display: table; + padding: 0; + flex-grow: 1; + table-layout: fixed; + border: 0 none; + width: fit-content; + border-collapse: collapse;*/ + /*width: calc(100% - 12rem); + border-collapse: collapse;*/ + /*width: calc(100% - 12rem);*/ + gap: .1rem; +} + + /*margin: 0; +#dashboard .grid:only-child, +#dashboard .grid:last-child, +#dashboard .grid:last-of-type { + margin-bottom: 0; +}*/ + +#dashboard .candidate .grid, +#dashboard .location .grid { + padding: .5rem; } -button.submit { - width: 25%; - min-width: 8rem; - margin: 0 auto; - padding: .2rem .1rem; +#dashboard .dlgrid { + display: flex; + flex-flow: row wrap; + gap: .5rem; } -/* Vertical form */ -.form_col { - margin-left: .5rem; - width: 10rem; +#dashboard dl { + /*margin: .5rem; + padding: .25rem; + border: .1rem solid #00c3f9; + border-radius: .2rem; + flex-grow: 1; + box-sizing: border-box; + border-collapse: collapse;*/ + margin: 0 .5rem .5rem .5rem; } -.form_col div { - flex-direction: column; +#dashboard dl:first-child, +#dashboard dl:only-child, +#dashboard dl:first-of-type { + margin-top: .5rem; } -.form_col div.error { - flex-direction: row; +#dashboard dt { + font-size: .9rem; + font-weight: bold; } -.form_col label { - text-align: center; +#dashboard dd { + font-size: .9rem; + margin-left: 1rem; } -.form_col section section, -.form_col section section:only-child, -.form_col section section:last-child, -.form_col section section:last-of-type { - width: auto; +#dashboard ul { + /*padding: 0 .1rem;*/ + margin: .1rem; } -.form_col div.date { - flex-direction: row; - justify-content: space-between; +#dashboard li { + font-size: .8rem; + margin-bottom: .1rem; } -/* Dashboard */ -#dashboard .panel { - display: flex; - flex-direction: row; - flex-wrap: wrap; - place-content: space-between; +#dashboard li:only-child, +#dashboard li:last-child { + margin-bottom: 0; } -#dashboard .grid { - display: table; - border: .05rem solid #00c3f9; +#dashboard .subgrid { + display: flex; + flex-flow: row wrap; + border-style: solid; + border-color: #00c3f9; + border-width: .1rem 0 0 .1rem; + border-radius: .2rem; flex-grow: 1; - border-radius: .2rem; /* marche pas sur chrome */ - table-layout: fixed; - width: calc(100% - 12rem); + box-sizing: inherit; + box-sizing: border-box; border-collapse: collapse; + margin: .5rem; } -#dashboard .cell { - display: table-cell; - text-align: left; - border: .05rem solid #00c3f9; - font-size: initial; - height: 8rem; +#dashboard .subgrid:only-child, +#dashboard .subgrid:last-child, +#dashboard .subgrid:last-of-type { + margin-bottom: 0; } -#dashboard dl.cell { - height: 3rem; +#dashboard .cell { + border-color: inherit; + border-style: inherit; + border-width: .1rem; + border-radius: inherit; + flex-grow: inherit; + box-sizing: inherit; + border-collapse: inherit; } -#dashboard .cell h3 { - font-size: 1rem; - padding: .25rem; - margin: 0; +#dashboard .subgrid .cell { + border-radius: 0; + border-width: 0 .1rem .1rem 0; +} +#dashboard .subgrid .cell:only-child, +#dashboard .subgrid .cell:last-child, +#dashboard .subgrid .cell:last-of-type { + border-radius: inherit; } -#dashboard .cell dd { - text-align: center; +#dashboard .fourth { + min-height: 5rem; + width: calc(100% / 4 - (6/7*.1rem)); } #dashboard .seventh { - width: calc(100% / 7); + min-height: 5rem; + width: calc(100% / 7 - (6/7*.1rem)); +} + +#dashboard .third { + min-height: 5rem; + width: calc(100% / 3 - (6/7*.1rem)); +} + +#dashboard .session { + border: .1rem solid #00c3f9; + border-radius: .2rem; + white-space: nowrap; + display: flex; + flex-direction: row; + justify-content: space-between; + padding: .1rem; +} + +#dashboard .session a { + overflow-x: hidden; + text-overflow: ellipsis; +} + +#dashboard .session a:first-letter { + color: #066; } #dashboard .disabled { - color: #acc; - background-color: #bee; + /*color: #acc; + background-color: #bee;*/ + filter: grayscale(33%); } #dashboard .current { background-color: #cff; } -#dashboard .next { - background-color: #eff; +#dashboard .current h3 { + text-decoration: underline solid #00c3f9; } -#dashboard .session { - border-radius: .2rem; - border: .1rem solid #00c3f9; - font-size: .8rem; - padding: .2rem; - margin: 0 .1rem .1rem .1rem; - overflow-x: hidden; - white-space: nowrap; - text-overflow: ellipsis; +#dashboard .next { + background-color: #eff; } #dashboard .pending { @@ -438,40 +642,106 @@ button.submit { background-color: #fc9; } -/* Policy */ -#policy h3 { - background-color: #cff; - border-bottom: .1rem solid #00c3f9; - margin: -.5rem -.5rem .5rem -.5rem; - padding: .5rem; - padding-bottom: .4rem; +#dashboard .highlight { + border-color: #3333c3; + background-color: #c3c3f9; + color: #3333c3; } -#policy section { +#dashboard .form { + margin: 0 0 0 .5rem; display: flex; flex-direction: column; + gap: .5rem; +} + +#dashboard .form a, +#dashboard .form h2 { + white-space: nowrap; + font-size: 1.17rem; + padding: .3rem; +} + +#dashboard .form section { border: .05rem solid #00c3f9; border-radius: .2rem; +} + +#dashboard .form form { padding: .5rem; + gap: .5rem; +} + +/* Weather + * TODO: drop +>24°C +#dashboard .cleary a::before { + content: "☀"; +} + +>17°C +#dashboard .sunny a::before { + content: "⛅"; } -#policy section section { +>10°C +#dashboard .cloudy a::before { + content: "☁"; +} + +<=10°C +#dashboard .winty a::before { + content: "❄️"; +} + +>0mm +#dashboard .rainy a::before { + content: "🌂"; +} + +>2mm +#dashboard .stormy a::before { + content: "☔"; +}*/ + +/* Regulation */ +#regulation { +} + +#regulation dl { + /*display: flex; + flex-direction: row; + justify-content: space-around; + padding-bottom: .5rem;*/ padding: .25rem; - padding-bottom: .5rem; + margin-bottom: .5rem; } -#policy dl { - padding-bottom: .5rem; +#regulation dt { + font-size: .9rem; + font-weight: bold; + padding-bottom: .2rem; } -#policy h4 { - background-color: #cff; - border-bottom: .1rem solid #00c3f9; - margin: -.24rem -.24rem .24rem -.24rem; - padding: .24rem; - padding-bottom: .3rem; +#regulation dd { + font-size: .9rem; + margin-left: 1.5rem; } +#regulation dd:before { +} + +#regulation dl:only-child, +#regulation dl:last-child, +#regulation dl:last-of-type, +#regulation dt:only-child, +#regulation dt:last-child, +#regulation dt:last-of-type, +#regulation dd:only-child, +#regulation dd:last-child, +#regulation dd:last-of-type { + margin-bottom: 0; +} /* Footer */ #footer { @@ -500,26 +770,108 @@ button.submit { } /* viewport responsive hack */ -@media ( max-width: 650px ) { - #header { - flex-wrap: wrap; +@media ( max-width: 900px ) { + #header nav { + padding: 0 0 .5rem 0; } - #dashboard .panel { + #header nav a { + margin: .5rem .5rem 0 0; + white-space: nowrap; + } + + #dashboard .calendar { place-content: center; flex-direction: column; + flex-wrap: wrap; } - #dashboard .grid { - width: 100%; + #dashboard .panel:only-child, + #dashboard .panel:last-child, + #dashboard .panel:last-of-type { + margin-bottom: .5rem; } - #dashboard div.grid { - display: grid; + #dashboard .form { + margin: .5rem auto 0 auto; + flex-direction: row; } - .form_col { - margin: .5rem auto 0 auto; + form label { + width: 6rem; + } + + form input, + form option, + form optgroup, + form select, + form textarea, + form section section { + width: 20rem; + } + + form button { + width: 6rem; + } + + .col label, + .col input, + .col option, + .col optgroup, + .col select, + .col textarea { + width: 12rem; + } + + .col button { + width: 12rem; + box-sizing: fit-content; + } + + #dashboard .seventh:nth-child(7n+1), + #dashboard .seventh:nth-child(7n+2), + #dashboard .seventh:nth-child(7n+3), + #dashboard .seventh:nth-child(7n+4) { + width: calc(100% / 4 - (6/7*.1rem)); + } + + #dashboard .seventh:nth-child(7n+5), + #dashboard .seventh:nth-child(7n+6), + #dashboard .seventh:nth-child(7n+7) { + width: calc(100% / 3 - (6/7*.1rem)); } } +@media ( max-width: 600px ) { + form input, + form option, + form optgroup, + form select, + form textarea, + form section section { + width: 14rem; + } + + #header { + flex-direction: column; + } + #header nav { + justify-content: space-between; + padding: 0 .5rem 0 0; + } + #header nav a { + width: auto; + margin: 0 0 .5rem .5rem; + } + + #dashboard .seventh:nth-child(n) { + width: calc(100% / 2 - (6/7*.1rem)); + } + + #dashboard .seventh:nth-child(7n) { + width: calc(100%); + } +} + +@media ( max-width: 500px ) { +}