123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846 |
- /* Default user-agent stylesheet for LibWeb
- * Note: This stylesheet starts with a bunch of ad-hoc custom rules.
- * After that, rules from the HTML spec follow.
- */
- html {
- font-family: sans-serif;
- color: -libweb-palette-base-text;
- }
- body {
- margin: 8px;
- }
- center {
- text-align: -libweb-center;
- }
- blink {
- display: inline;
- }
- /* FIXME: This doesn't seem right. */
- label {
- display: inline-block;
- }
- /* FIXME: This is a temporary hack until we can render a native-looking frame for these. */
- input, textarea {
- border: 1px solid -libweb-palette-threed-shadow1;
- min-width: 80px;
- min-height: 16px;
- width: 120px;
- cursor: text;
- overflow: hidden;
- }
- textarea {
- padding: 2px;
- display: inline-block;
- overflow: scroll;
- }
- input[type=submit], input[type=button], input[type=reset], input[type=checkbox], input[type=radio] {
- border: none;
- min-width: unset;
- min-height: unset;
- width: unset;
- cursor: unset;
- }
- input::placeholder {
- color: rgb(117, 117, 117);
- }
- button, input[type=submit], input[type=button], input[type=reset] {
- padding: 1px 4px;
- background-color: -libweb-palette-button;
- border: 1px solid -libweb-palette-threed-shadow1;
- color: -libweb-palette-button-text;
- }
- button:hover, input[type=submit]:hover, input[type=button]:hover, input[type=reset]:hover {
- background-color: -libweb-palette-hover-highlight;
- }
- option {
- display: none;
- }
- /* 15.3.1 Hidden elements
- * https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements
- */
- area, base, basefont, datalist, head, link, meta, noembed,
- noframes, param, rp, script, style, template, title {
- display: none;
- }
- [hidden]:not([hidden=until-found i]) {
- display: none;
- }
- [hidden=until-found i]:not(embed) {
- content-visibility: hidden;
- }
- embed[hidden] {
- display: inline;
- height: 0;
- width: 0;
- }
- input[type=hidden i] {
- display: none !important;
- }
- @media (scripting) {
- noscript {
- display: none !important;
- }
- }
- /* 15.3.2 The page
- * https://html.spec.whatwg.org/multipage/rendering.html#the-page
- */
- html, body {
- display: block;
- }
- /* 15.3.3 Flow content
- * https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3
- */
- address, blockquote, center, dialog, div, figure, figcaption, footer, form,
- header, hr, legend, listing, main, p, plaintext, pre, xmp {
- display: block;
- }
- blockquote, figure, listing, p, plaintext, pre, xmp {
- margin-top: 1em;
- margin-bottom: 1em;
- }
- blockquote, figure {
- margin-left: 40px;
- margin-right: 40px;
- }
- address {
- font-style: italic;
- }
- listing, plaintext, pre, xmp {
- font-family: monospace;
- white-space: pre;
- }
- dialog:not([open]) {
- display: none;
- }
- dialog {
- position: absolute;
- inset-left: 0;
- inset-right: 0;
- width: fit-content;
- height: fit-content;
- margin: auto;
- border: solid;
- padding: 1em;
- background-color: Canvas;
- color: CanvasText;
- }
- dialog::backdrop {
- background: rgba(0, 0, 0, 0.1);
- }
- slot {
- display: contents;
- }
- /* 15.3.4 Phrasing content
- * https://html.spec.whatwg.org/multipage/rendering.html#phrasing-content-3
- */
- cite, dfn, em, i, var {
- font-style: italic;
- }
- b, strong {
- font-weight: bolder;
- }
- code, kbd, samp, tt {
- font-family: monospace;
- }
- big {
- font-size: larger;
- }
- small {
- font-size: smaller;
- }
- sub {
- vertical-align: sub;
- }
- sup {
- vertical-align: super;
- }
- sub, sup {
- line-height: normal;
- font-size: smaller;
- }
- ruby {
- display: ruby;
- }
- rt {
- display: ruby-text;
- }
- :link {
- color: -libweb-link;
- }
- :visited {
- color: -libweb-palette-visited-link;
- }
- :link:active, :visited:active {
- color: -libweb-palette-active-link;
- }
- :link, :visited {
- text-decoration: underline;
- cursor: pointer;
- }
- :focus-visible {
- outline: auto;
- }
- mark {
- background: yellow;
- color: black;
- }
- /* this color is just a suggestion and can be changed based on implementation feedback */
- abbr[title], acronym[title] {
- text-decoration: dotted underline;
- }
- ins, u {
- text-decoration: underline;
- }
- del, s, strike {
- text-decoration: line-through;
- }
- q::before {
- content: open-quote;
- }
- q::after {
- content: close-quote;
- }
- br {
- display-outside: newline;
- }
- /* this also has bidi implications */
- nobr {
- white-space: nowrap;
- }
- wbr {
- display-outside: break-opportunity;
- }
- /* this also has bidi implications */
- nobr wbr {
- white-space: normal;
- }
- /* 15.3.5 Bidirectional text
- * https://html.spec.whatwg.org/multipage/rendering.html#bidi-rendering
- */
- [dir]:dir(ltr), bdi:dir(ltr), input[type=tel i]:dir(ltr) {
- direction: ltr;
- }
- [dir]:dir(rtl), bdi:dir(rtl) {
- direction: rtl;
- }
- address, blockquote, center, div, figure, figcaption, footer, form, header, hr,
- legend, listing, main, p, plaintext, pre, summary, xmp, article, aside, h1, h2,
- h3, h4, h5, h6, hgroup, nav, section, table, caption, colgroup, col, thead,
- tbody, tfoot, tr, td, th, dir, dd, dl, dt, menu, ol, ul, li, bdi, output,
- [dir=ltr i], [dir=rtl i], [dir=auto i] {
- unicode-bidi: isolate;
- }
- bdo, bdo[dir] {
- unicode-bidi: isolate-override;
- }
- input[dir=auto i]:is([type=search i], [type=tel i], [type=url i],
- [type=email i]), textarea[dir=auto i], pre[dir=auto i] {
- unicode-bidi: plaintext;
- }
- /* 15.3.6 Sections and headings
- * https://html.spec.whatwg.org/multipage/rendering.html#sections-and-headings
- */
- article, aside, h1, h2, h3, h4, h5, h6, hgroup, nav, section {
- display: block;
- }
- h1 {
- margin-top: 0.67em;
- margin-bottom: 0.67em;
- font-size: 2.00em;
- font-weight: bold;
- }
- h2 {
- margin-top: 0.83em;
- margin-bottom: 0.83em;
- font-size: 1.50em;
- font-weight: bold;
- }
- h3 {
- margin-top: 1.00em;
- margin-bottom: 1.00em;
- font-size: 1.17em;
- font-weight: bold;
- }
- h4 {
- margin-top: 1.33em;
- margin-bottom: 1.33em;
- font-size: 1.00em;
- font-weight: bold;
- }
- h5 {
- margin-top: 1.67em;
- margin-bottom: 1.67em;
- font-size: 0.83em;
- font-weight: bold;
- }
- h6 {
- margin-top: 2.33em;
- margin-bottom: 2.33em;
- font-size: 0.67em;
- font-weight: bold;
- }
- :is(article, aside, nav, section) h1 {
- margin-top: 0.83em;
- margin-bottom: 0.83em;
- font-size: 1.50em;
- }
- :is(article, aside, nav, section) :is(article, aside, nav, section) h1 {
- margin-top: 1.00em;
- margin-bottom: 1.00em;
- font-size: 1.17em;
- }
- :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1 {
- margin-top: 1.33em;
- margin-bottom: 1.33em;
- font-size: 1.00em;
- }
- :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1 {
- margin-top: 1.67em;
- margin-bottom: 1.67em;
- font-size: 0.83em;
- }
- :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1 {
- margin-top: 2.33em;
- margin-bottom: 2.33em;
- font-size: 0.67em;
- }
- /* 15.3.7 Lists
- * https://html.spec.whatwg.org/multipage/rendering.html#lists
- */
- dir, dd, dl, dt, menu, ol, ul {
- display: block;
- }
- li {
- display: list-item;
- text-align: match-parent;
- }
- dir, dl, menu, ol, ul {
- margin-top: 1em;
- margin-bottom: 1em;
- }
- :is(dir, dl, menu, ol, ul) :is(dir, dl, menu, ol, ul) {
- margin-top: 0;
- margin-bottom: 0;
- }
- dd {
- margin-left: 40px;
- }
- dir, menu, ol, ul {
- padding-left: 40px;
- }
- ol, ul, menu {
- counter-reset: list-item;
- }
- ol {
- list-style-type: decimal;
- }
- dir, menu, ul {
- list-style-type: disc;
- }
- :is(dir, menu, ol, ul) :is(dir, menu, ul) {
- list-style-type: circle;
- }
- :is(dir, menu, ol, ul) :is(dir, menu, ol, ul) :is(dir, menu, ul) {
- list-style-type: square;
- }
- /* 15.3.8 Tables
- * https://html.spec.whatwg.org/multipage/rendering.html#tables-2
- */
- table {
- display: table;
- }
- caption {
- display: table-caption;
- }
- colgroup, colgroup[hidden] {
- display: table-column-group;
- }
- col, col[hidden] {
- display: table-column;
- }
- thead, thead[hidden] {
- display: table-header-group;
- }
- tbody, tbody[hidden] {
- display: table-row-group;
- }
- tfoot, tfoot[hidden] {
- display: table-footer-group;
- }
- tr, tr[hidden] {
- display: table-row;
- }
- td, th {
- display: table-cell;
- }
- colgroup[hidden], col[hidden], thead[hidden], tbody[hidden],
- tfoot[hidden], tr[hidden] {
- visibility: collapse;
- }
- table {
- box-sizing: border-box;
- border-spacing: 2px;
- border-collapse: separate;
- text-indent: initial;
- }
- td, th {
- padding: 1px;
- }
- th {
- font-weight: bold;
- }
- caption {
- text-align: center;
- }
- thead, tbody, tfoot, table > tr {
- vertical-align: middle;
- }
- tr, td, th {
- vertical-align: inherit;
- }
- thead, tbody, tfoot, tr {
- border-color: inherit;
- }
- table[rules=none i], table[rules=groups i], table[rules=rows i],
- table[rules=cols i], table[rules=all i], table[frame=void i],
- table[frame=above i], table[frame=below i], table[frame=hsides i],
- table[frame=lhs i], table[frame=rhs i], table[frame=vsides i],
- table[frame=box i], table[frame=border i],
- table[rules=none i] > tr > td, table[rules=none i] > tr > th,
- table[rules=groups i] > tr > td, table[rules=groups i] > tr > th,
- table[rules=rows i] > tr > td, table[rules=rows i] > tr > th,
- table[rules=cols i] > tr > td, table[rules=cols i] > tr > th,
- table[rules=all i] > tr > td, table[rules=all i] > tr > th,
- table[rules=none i] > thead > tr > td, table[rules=none i] > thead > tr > th,
- table[rules=groups i] > thead > tr > td, table[rules=groups i] > thead > tr > th,
- table[rules=rows i] > thead > tr > td, table[rules=rows i] > thead > tr > th,
- table[rules=cols i] > thead > tr > td, table[rules=cols i] > thead > tr > th,
- table[rules=all i] > thead > tr > td, table[rules=all i] > thead > tr > th,
- table[rules=none i] > tbody > tr > td, table[rules=none i] > tbody > tr > th,
- table[rules=groups i] > tbody > tr > td, table[rules=groups i] > tbody > tr > th,
- table[rules=rows i] > tbody > tr > td, table[rules=rows i] > tbody > tr > th,
- table[rules=cols i] > tbody > tr > td, table[rules=cols i] > tbody > tr > th,
- table[rules=all i] > tbody > tr > td, table[rules=all i] > tbody > tr > th,
- table[rules=none i] > tfoot > tr > td, table[rules=none i] > tfoot > tr > th,
- table[rules=groups i] > tfoot > tr > td, table[rules=groups i] > tfoot > tr > th,
- table[rules=rows i] > tfoot > tr > td, table[rules=rows i] > tfoot > tr > th,
- table[rules=cols i] > tfoot > tr > td, table[rules=cols i] > tfoot > tr > th,
- table[rules=all i] > tfoot > tr > td, table[rules=all i] > tfoot > tr > th {
- border-color: black;
- }
- /* 15.3.10 Form controls
- * https://html.spec.whatwg.org/multipage/rendering.html#form-controls
- */
- input, select, button, textarea {
- letter-spacing: initial;
- word-spacing: initial;
- line-height: initial;
- text-transform: initial;
- text-indent: initial;
- text-shadow: initial;
- appearance: auto;
- }
- input, select, textarea {
- text-align: initial;
- }
- input:is([type=reset i], [type=button i], [type=submit i]), button {
- text-align: center;
- }
- input, button {
- display: inline-block;
- }
- input[type=hidden i], input[type=file i], input[type=image i] {
- appearance: none;
- }
- input:is([type=radio i], [type=checkbox i], [type=reset i], [type=button i],
- [type=submit i], [type=color i], [type=search i]), select, button {
- box-sizing: border-box;
- }
- textarea {
- white-space: pre-wrap;
- }
- /* 15.3.11 The hr element
- * https://html.spec.whatwg.org/multipage/rendering.html#the-hr-element-2
- */
- hr {
- color: gray;
- border-style: inset;
- border-width: 1px;
- margin: 0.5em auto;
- overflow: hidden;
- }
- /* 15.3.12 The fieldset and legend elements
- * https://html.spec.whatwg.org/multipage/rendering.html#the-fieldset-and-legend-elements
- */
- fieldset {
- display: block;
- margin-left: 2px;
- margin-right: 2px;
- border: groove 2px ThreeDFace;
- padding: 0.35em 0.75em 0.625em;
- min-inline-size: min-content;
- }
- legend {
- padding-left: 2px;
- padding-right: 2px;
- }
- legend[align=left i] {
- justify-self: left;
- }
- legend[align=center i] {
- justify-self: center;
- }
- legend[align=right i] {
- justify-self: right;
- }
- /* 15.3.8 Embedded content
- * https://html.spec.whatwg.org/multipage/rendering.html#tables-2
- */
- table {
- display: table;
- }
- caption {
- display: table-caption;
- }
- colgroup, colgroup[hidden] {
- display: table-column-group;
- }
- col, col[hidden] {
- display: table-column;
- }
- thead, thead[hidden] {
- display: table-header-group;
- }
- tbody, tbody[hidden] {
- display: table-row-group;
- }
- tfoot, tfoot[hidden] {
- display: table-footer-group;
- }
- tr, tr[hidden] {
- display: table-row;
- }
- td, th {
- display: table-cell;
- }
- colgroup[hidden], col[hidden], thead[hidden], tbody[hidden],
- tfoot[hidden], tr[hidden] {
- visibility: collapse;
- }
- table {
- box-sizing: border-box;
- border-spacing: 2px;
- border-collapse: separate;
- text-indent: initial;
- }
- td, th {
- padding: 1px;
- }
- th {
- font-weight: bold;
- }
- caption {
- text-align: center;
- }
- thead, tbody, tfoot, table > tr {
- vertical-align: middle;
- }
- tr, td, th {
- vertical-align: inherit;
- }
- thead, tbody, tfoot, tr {
- border-color: inherit;
- }
- table[rules=none i], table[rules=groups i], table[rules=rows i],
- table[rules=cols i], table[rules=all i], table[frame=void i],
- table[frame=above i], table[frame=below i], table[frame=hsides i],
- table[frame=lhs i], table[frame=rhs i], table[frame=vsides i],
- table[frame=box i], table[frame=border i],
- table[rules=none i] > tr > td, table[rules=none i] > tr > th,
- table[rules=groups i] > tr > td, table[rules=groups i] > tr > th,
- table[rules=rows i] > tr > td, table[rules=rows i] > tr > th,
- table[rules=cols i] > tr > td, table[rules=cols i] > tr > th,
- table[rules=all i] > tr > td, table[rules=all i] > tr > th,
- table[rules=none i] > thead > tr > td, table[rules=none i] > thead > tr > th,
- table[rules=groups i] > thead > tr > td, table[rules=groups i] > thead > tr > th,
- table[rules=rows i] > thead > tr > td, table[rules=rows i] > thead > tr > th,
- table[rules=cols i] > thead > tr > td, table[rules=cols i] > thead > tr > th,
- table[rules=all i] > thead > tr > td, table[rules=all i] > thead > tr > th,
- table[rules=none i] > tbody > tr > td, table[rules=none i] > tbody > tr > th,
- table[rules=groups i] > tbody > tr > td, table[rules=groups i] > tbody > tr > th,
- table[rules=rows i] > tbody > tr > td, table[rules=rows i] > tbody > tr > th,
- table[rules=cols i] > tbody > tr > td, table[rules=cols i] > tbody > tr > th,
- table[rules=all i] > tbody > tr > td, table[rules=all i] > tbody > tr > th,
- table[rules=none i] > tfoot > tr > td, table[rules=none i] > tfoot > tr > th,
- table[rules=groups i] > tfoot > tr > td, table[rules=groups i] > tfoot > tr > th,
- table[rules=rows i] > tfoot > tr > td, table[rules=rows i] > tfoot > tr > th,
- table[rules=cols i] > tfoot > tr > td, table[rules=cols i] > tfoot > tr > th,
- table[rules=all i] > tfoot > tr > td, table[rules=all i] > tfoot > tr > th {
- border-color: black;
- }
- /* 15.4.1 Embedded content
- * https://html.spec.whatwg.org/multipage/rendering.html#embedded-content-rendering-rules
- */
- iframe {
- border: 2px inset;
- }
- video {
- object-fit: contain;
- }
- /* 15.4.3 Attributes for embedded content and images
- * https://html.spec.whatwg.org/multipage/rendering.html#attributes-for-embedded-content-and-images
- */
- iframe[frameborder='0'], iframe[frameborder=no i] { border: none; }
- embed[align=left i], iframe[align=left i], img[align=left i],
- input[type=image i][align=left i], object[align=left i] {
- float: left;
- }
- embed[align=right i], iframe[align=right i], img[align=right i],
- input[type=image i][align=right i], object[align=right i] {
- float: right;
- }
- embed[align=top i], iframe[align=top i], img[align=top i],
- input[type=image i][align=top i], object[align=top i] {
- vertical-align: top;
- }
- embed[align=baseline i], iframe[align=baseline i], img[align=baseline i],
- input[type=image i][align=baseline i], object[align=baseline i] {
- vertical-align: baseline;
- }
- embed[align=texttop i], iframe[align=texttop i], img[align=texttop i],
- input[type=image i][align=texttop i], object[align=texttop i] {
- vertical-align: text-top;
- }
- embed[align=absmiddle i], iframe[align=absmiddle i], img[align=absmiddle i],
- input[type=image i][align=absmiddle i], object[align=absmiddle i],
- embed[align=abscenter i], iframe[align=abscenter i], img[align=abscenter i],
- input[type=image i][align=abscenter i], object[align=abscenter i] {
- vertical-align: middle;
- }
- embed[align=bottom i], iframe[align=bottom i], img[align=bottom i],
- input[type=image i][align=bottom i], object[align=bottom i] {
- vertical-align: bottom;
- }
- /* 15.5.4 The details and summary elements
- * https://html.spec.whatwg.org/multipage/rendering.html#the-details-and-summary-elements
- */
- summary {
- display: list-item;
- counter-increment: list-item 0;
- list-style: disclosure-closed inside;
- }
- details[open] > summary {
- list-style-type: disclosure-open;
- }
- /* 15.5.12 The marquee element
- * https://html.spec.whatwg.org/multipage/rendering.html#the-marquee-element-2
- */
- marquee {
- display: inline-block;
- text-align: initial;
- }
- /* 15.5.13 The meter element
- * https://html.spec.whatwg.org/multipage/rendering.html#the-meter-element-2
- */
- meter {
- appearance: auto;
- }
- /* 15.5.14 The progress element
- * https://html.spec.whatwg.org/multipage/rendering.html#the-progress-element-2
- */
- progress {
- appearance: auto;
- }
- /* https://www.w3.org/TR/mediaqueries-5/#descdef-media-inverted-colors
- */
- @media (inverted-colors) {
- img:not(picture>img),
- picture,
- video {
- filter: invert(100%);
- }
- }
- /* This is the same as default intrinsic size of a <progress> element */
- progress {
- width: 300px;
- height: 12px;
- }
- /* The default progress-value/bar CSS below is the same as Blink/WebKit.
- * Note: Setting any more than the backgrond-color may have unintended consequences, as sites don't expect to unset more than that.
- */
- progress::-webkit-progress-bar {
- width: inherit;
- height: inherit;
- background-color: grey;
- }
- progress::-webkit-progress-value {
- height: inherit;
- background-color: green;
- }
|