mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue
synced 2024-11-24 22:25:27 +00:00
c1485615bb
Dynamic Type is a feature in iOS that lets users pick their reading size so that apps can adjust their text size accordingly. This commit makes the mobile site hook into that feature. If you go to settings > Accessibility > Larger Text in iOS and increase or decrease the reading size, the mobile site will now increase / decrease its text size relative to that setting. Notable changes: * Moved `font-size: 100% * @fontScalingFactor` from html to body. This rule would override Dynamic Type sizing which would effectively disable it. Moving it to the body makes the rule be relative to Dynamic Type instead of overriding it in iOS browsers while browsers that don't support Dynamic Type should observe no visible changes. * Removed intermediate variable @bodyLineHeight because it was only being used in one place. * Added @font-size-body-mobile and made it based on % instead of em (which is what @font-size-body uses). @font-size-mobile-bod is used by a media query in browsers that support Dynamic Type and by another media query in browsers that don't support Dynamic Type. * Added a feature query for Dynamic Type which will make Dynamic Type CSS rules only affect browsers that support Dynamic Type. This limits the feature to iOS 9+ feature but ensures that the css rules don't affect browsers that don't support Dynamic Type. * Scaled down Dynamic Type so that its default size would appear identical to the common browser default text size of 16px. By not doing this, the default font size in iOS browsers would be 17px (Dynamic Type's default) and would appear 1px larger than Android browsers. Bug: T204807 Change-Id: I8a4d621dba8dc56190bd8c974543d08dd374ba5e
106 lines
2.3 KiB
Plaintext
106 lines
2.3 KiB
Plaintext
@import '../../minerva.less/minerva.variables';
|
|
@import '../../minerva.less/minerva.mixins';
|
|
|
|
// Content formatting and typography
|
|
//
|
|
// Our content is predominately text, hence visual hierarchy must be clear.
|
|
//
|
|
// Styleguide 1.
|
|
|
|
html {
|
|
// prevent font scaling in landscape in Safari
|
|
-webkit-text-size-adjust: none;
|
|
}
|
|
|
|
@font-size-body: 100% * @fontScalingFactor;
|
|
|
|
body {
|
|
font-family: @fontFamily;
|
|
font-size: @font-size-body;
|
|
line-height: 1.4;
|
|
color: @colorGray2;
|
|
background: #fff;
|
|
-webkit-tap-highlight-color: rgba( 0, 0, 0, 0.2 );
|
|
}
|
|
|
|
.content {
|
|
line-height: @contentLineHeight;
|
|
// Deal with long links (bug 60387)
|
|
word-wrap: break-word;
|
|
|
|
/* Emulate Center - from mediawiki.skinning/elements.css */
|
|
.center {
|
|
width: 100%;
|
|
text-align: center;
|
|
|
|
> *,
|
|
.thumb {
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
}
|
|
}
|
|
|
|
@font-size-body-mobile: 0.8 * @font-size-body;
|
|
|
|
@media all and ( max-width: @width-breakpoint-mobile - 1 ) {
|
|
body {
|
|
font-size: @font-size-body-mobile;
|
|
}
|
|
|
|
.content {
|
|
margin: 0 12px;
|
|
}
|
|
}
|
|
|
|
.client-js {
|
|
.collapsible-block {
|
|
display: none;
|
|
|
|
&.open-block {
|
|
display: block;
|
|
}
|
|
}
|
|
}
|
|
|
|
.nomobile {
|
|
// No mobile should trump any other class. e.g. .content table { display: table; }
|
|
display: none !important;
|
|
}
|
|
|
|
@media all and ( min-width: @width-breakpoint-tablet ) {
|
|
.client-js {
|
|
// Avoid flash of unstyled content for tablet users while JavaScript is loading
|
|
// onclick attribute is removed by the toggling code.
|
|
[ onclick ] + .collapsible-block {
|
|
display: block;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Support iOS 9+ browsers: Enable Dynamic Type resizing, see
|
|
// http://www.interactiveaccessibility.com/blog/text-resizing-web-pages-ios-using-dynamic-type
|
|
// & T204807.
|
|
@supports ( font: -apple-system-body ) {
|
|
html {
|
|
font: -apple-system-body;
|
|
}
|
|
|
|
// Most iOS browsers' default font size is 16px but Dynamic Type's default
|
|
// font size is 17px. We need to scale down @font-size-body and
|
|
// @font-size-body-mobile by this ratio in order to make them relative to these
|
|
// browsers' defaults again. By doing this, the default Dynamic Type text size
|
|
// will appear identical to the browser's default text size.
|
|
@dynamicTypeScalingFactor: 16 / 17;
|
|
|
|
body {
|
|
font-size: @font-size-body * @dynamicTypeScalingFactor;
|
|
}
|
|
|
|
@media all and ( max-width: @width-breakpoint-mobile - 1 ) {
|
|
body {
|
|
font-size: @font-size-body-mobile * @dynamicTypeScalingFactor;
|
|
}
|
|
}
|
|
}
|