mediawiki-skins-Citizen/resources/skins.citizen.preferences/skins.citizen.preferences.less
alistair3149 241dc96cfe
feat(prefs): move page width to clientPrefs
Now all of the existing prefs are migrated to clientPrefs,
we can discard the code from the old system.
2024-04-25 17:41:22 -04:00

160 lines
3.3 KiB
Plaintext

@import '../mixins.less';
.citizen-pref {
&__button {
&[ aria-expanded='true' ] {
background-color: var( --background-color-primary--active );
}
}
}
#citizen-pref {
&-header {
padding: var( --space-lg ) var( --space-md ) 0;
font-size: 1rem;
font-weight: var( --font-weight-semibold );
color: var( --color-base--emphasized );
}
// TODO: unify the dropdown menu style somewhere
&-panel {
.citizen-header-card( right );
&.citizen-pref-panel--active {
.citizen-card-show;
}
fieldset {
padding: 0 var( --space-md );
margin: 0;
font-size: var( --font-size-small );
appearance: none;
border: 0;
}
> * {
opacity: 0;
}
}
}
// New clientPrefs styles
.citizen-client-prefs {
display: flex;
flex-direction: column;
gap: var( --space-xs );
padding-bottom: var( --space-lg );
form {
display: grid;
// This is not the best because it does not adapt to the text length but will revisit later
grid-template-columns: repeat( 3, 1fr );
gap: var( --space-xxs );
text-align: center;
}
&-radio {
&__input {
// Hide radio button because we use label as button
display: none;
&:checked {
~ .citizen-client-prefs-radio__label {
border-color: var( --color-primary );
}
}
}
&__label {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
padding: var( --space-xs ) var( --space-md );
font-weight: var( --font-weight-medium );
cursor: pointer;
border: 2px solid var( --border-color-base );
border-radius: var( --border-radius--medium );
&:hover {
border-color: var( --color-primary--hover );
}
&:active {
border-color: var( --color-primary--active );
}
}
}
}
#citizen-client-prefs {
.citizen-menu {
&__content {
padding: 0 var( --space-md );
}
}
}
#skin-client-prefs-skin-theme {
.citizen-client-prefs-radio__label {
background: var( --color-surface-0 );
&[ for='skin-client-pref-skin-theme-value-day' ] {
// color-base of day theme
color: ~'hsl( var( --color-primary__h ), 30%, 20% )';
// color-surface-0 of day theme
background: ~'hsl( var( --color-primary__h ), 30%, 96% )';
}
&[ for='skin-client-pref-skin-theme-value-night' ] {
// color-base of night theme
color: ~'hsl( var( --color-primary__h ), 25%, 80% )';
// color-surface-0 of night theme
background: ~'hsl( var( --color-primary__h ), 20%, 10% )';
}
}
}
#skin-client-prefs-citizen-feature-pure-black {
display: none;
form {
grid-template-columns: repeat( 2, 1fr );
}
// Display on dark theme
.skin-theme-clientpref-night & {
display: block;
}
@media ( prefers-color-scheme: dark ) {
.skin-theme-clientpref-os & {
display: block;
}
}
.citizen-client-prefs-radio__label[ for='skin-client-pref-citizen-feature-pure-black-value-1' ] {
background-color: #000;
}
}
#skin-client-prefs-citizen-feature-custom-font-size {
.citizen-client-prefs-radio__label {
font-size: var( --font-size-medium );
&[ for='skin-client-pref-citizen-feature-custom-font-size-value-0' ] {
font-size: var( --font-size-small );
}
&[ for='skin-client-pref-citizen-feature-custom-font-size-value-2' ] {
font-size: var( --font-size-large );
}
}
}
@media ( hover: hover ) {
.citizen-pref:hover .citizen-pref__button .citizen-ui-icon::before {
transform: rotate3d( 0, 0, 1, 90deg );
}
}