@c8y/style
Version:
Styles for Cumulocity IoT applications
162 lines (139 loc) • 3.41 kB
text/less
@import "../mixins/_forms.less";
@import "../mixins/_image.less";
@import "../mixins/_tab-focus.less";
@import "../mixins/_vendor-prefixes.less";
/**
* Scaffolding - Base HTML element styles
*
* Note: All spacing values use proper design tokens.
*
* Intentionally hardcoded values:
* - font-size: 10px (root font size for rem calculations)
* - margin: -1px (accessibility trick for .sr-only)
* - width/height: 1px (accessibility trick for .sr-only)
* - border-radius: 50% (circle shape, semantically correct)
* - 1px borders: Standard border widths
*/
// Reset the box-sizing
// Heads up! This reset may cause conflicts with some third-party widgets.
// For recommendations on resolving such conflicts, see
// http://getbootstrap.com/getting-started/#third-box-sizing
* {
.box-sizing(border-box);
outline-color: @component-color-focus;
}
*:before,
*:after {
.box-sizing(border-box);
}
// Body reset
html {
font-size: 10px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
overflow-x: hidden;
background-color: @body-background-color;
color: @text-color;
font-size: @font-size-base;
font-family: @font-family-base;
line-height: @line-height-base;
}
// Reset fonts for relevant elements
input,
button,
select,
textarea {
font-size: inherit;
font-family: inherit;
line-height: inherit;
}
// Links
a {
color: @link-color;
text-decoration: none;
&:hover,
&:focus {
color: @link-color-hover;
text-decoration: @link-hover-decoration;
}
&:focus {
.tab-focus();
}
&.no-decoration {
&:hover,
&:focus {
outline: none;
text-decoration: none;
}
&:focus {
.c8y-focus();
}
}
&.text-muted {
&:hover,
&:focus {
color: @link-color;
text-decoration: none;
}
}
}
// Figures
// We reset this here because previously Normalize had no `figure` margins. This ensures we don't break anyone's use of the element.
figure {
margin: 0;
}
// Images
img {
vertical-align: middle;
}
// Responsive images (ensure images don't scale beyond their parents)
.img-responsive {
.img-responsive();
}
.img-square {
width: 100%;
aspect-ratio: 1;
object-fit: scale-down;
}
// Removed unused Bootstrap 3 image utility classes - verified 0 usages
// .img-rounded, .img-thumbnail, .img-circle
hr {
margin-top: @line-height-computed;
margin-bottom: @line-height-computed;
border: 0;
border-top: 1px solid @hr-border;
}
// Only display content to screen readers
// See: http://a11yproject.com/posts/how-to-hide-content/
.sr-only,
.cdk-visually-hidden {
position: absolute ;
overflow: hidden;
clip: rect(0, 0, 0, 0);
margin: -1px;
padding: 0;
width: 1px;
height: 1px;
border: 0;
}
// Use in conjunction with .sr-only to only display content when it's focused.
// Useful for "Skip to main content" links, see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
.sr-only-focusable {
&:active,
&:focus {
z-index: 10;
overflow: visible;
clip: auto;
margin: 0;
width: auto;
height: auto;
}
}
// iOS "clickable elements" fix for role="button"
// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
// for traditionally non-focusable elements with role="button"
// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
[role='button'] {
cursor: pointer;
}