@tacc/core-styles 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.postcssrc.base.yml +48 -0
- package/README.md +244 -0
- package/bin/build.js +40 -0
- package/bin/config.js +90 -0
- package/bin/version.js +24 -0
- package/cli.js +77 -0
- package/dist/branding_logos.css +2 -0
- package/dist/components/README.css +1 -0
- package/dist/components/bootstrap.container.css +2 -0
- package/dist/components/bootstrap.figure.css +2 -0
- package/dist/components/bootstrap.pagination.css +2 -0
- package/dist/components/c-button.css +2 -0
- package/dist/components/c-callout.css +2 -0
- package/dist/components/c-card.css +2 -0
- package/dist/components/c-data-list.css +2 -0
- package/dist/components/c-footer.css +2 -0
- package/dist/components/c-image-map.css +2 -0
- package/dist/components/c-image-map.skin.css +1 -0
- package/dist/components/c-image-map.structure.css +2 -0
- package/dist/components/c-nav.css +2 -0
- package/dist/components/c-page.css +2 -0
- package/dist/components/c-recognition.css +2 -0
- package/dist/components/c-see-all-link.css +2 -0
- package/dist/components/c-show-more.css +2 -0
- package/dist/elements/README.css +1 -0
- package/dist/elements/figure.css +2 -0
- package/dist/elements/html-elements.css +2 -0
- package/dist/elements/tacc-search-bar.css +2 -0
- package/dist/generics/README.css +1 -0
- package/dist/objects/README.css +1 -0
- package/dist/objects/o-flex-item-table-wrap.css +2 -0
- package/dist/objects/o-grid.css +2 -0
- package/dist/objects/o-offset-content.css +2 -0
- package/dist/objects/o-section.css +2 -0
- package/dist/objects/o-site.css +2 -0
- package/dist/settings/README.css +1 -0
- package/dist/settings/border.css +2 -0
- package/dist/settings/color.css +2 -0
- package/dist/settings/font.css +2 -0
- package/dist/settings/max-width.css +2 -0
- package/dist/settings/space.css +2 -0
- package/dist/tools/README.css +1 -0
- package/dist/tools/media-queries.css +1 -0
- package/dist/tools/x-article-link.css +2 -0
- package/dist/tools/x-center.css +2 -0
- package/dist/tools/x-fake-border.css +2 -0
- package/dist/tools/x-grid.css +1 -0
- package/dist/tools/x-layout.css +2 -0
- package/dist/tools/x-overlay.css +1 -0
- package/dist/tools/x-truncate.css +2 -0
- package/dist/trumps/README.css +1 -0
- package/dist/trumps/icon.css +2 -0
- package/dist/trumps/icon.fonts.css +2 -0
- package/dist/trumps/s-article-list.css +2 -0
- package/dist/trumps/s-article-preview.css +2 -0
- package/dist/trumps/s-blockquote.css +2 -0
- package/dist/trumps/s-breadcrumbs.css +2 -0
- package/dist/trumps/s-cms-nav.css +1 -0
- package/dist/trumps/s-document.css +2 -0
- package/dist/trumps/s-footer.css +2 -0
- package/dist/trumps/s-guide-doc.css +2 -0
- package/dist/trumps/s-header.css +2 -0
- package/dist/trumps/s-inline-dl.css +2 -0
- package/dist/trumps/s-portal-nav.css +2 -0
- package/dist/trumps/s-style-guide.css +2 -0
- package/dist/trumps/s-system-specs.css +2 -0
- package/dist/trumps/tacc-search-bar.css +2 -0
- package/dist/trumps/u-empty.css +1 -0
- package/dist/trumps/u-hide.css +2 -0
- package/dist/trumps/u-nested-text-content.css +2 -0
- package/index.js +45 -0
- package/package.json +49 -0
- package/source/README.md +8 -0
- package/source/_imports/README.md +47 -0
- package/source/_imports/branding_logos.css +73 -0
- package/source/_imports/components/README.css +26 -0
- package/source/_imports/components/bootstrap.container.css +23 -0
- package/source/_imports/components/bootstrap.figure.css +17 -0
- package/source/_imports/components/bootstrap.pagination.css +29 -0
- package/source/_imports/components/c-button.css +210 -0
- package/source/_imports/components/c-button.html +31 -0
- package/source/_imports/components/c-callout.css +183 -0
- package/source/_imports/components/c-callout.html +52 -0
- package/source/_imports/components/c-card.css +57 -0
- package/source/_imports/components/c-card.html +32 -0
- package/source/_imports/components/c-data-list.css +222 -0
- package/source/_imports/components/c-data-list.html +145 -0
- package/source/_imports/components/c-footer.css +67 -0
- package/source/_imports/components/c-footer.html +3 -0
- package/source/_imports/components/c-image-map.css +26 -0
- package/source/_imports/components/c-image-map.html +4 -0
- package/source/_imports/components/c-image-map.skin.css +1 -0
- package/source/_imports/components/c-image-map.structure.css +285 -0
- package/source/_imports/components/c-nav.css +164 -0
- package/source/_imports/components/c-nav.html +45 -0
- package/source/_imports/components/c-page.css +95 -0
- package/source/_imports/components/c-page.html +192 -0
- package/source/_imports/components/c-recognition.css +102 -0
- package/source/_imports/components/c-see-all-link.css +52 -0
- package/source/_imports/components/c-show-more.css +50 -0
- package/source/_imports/elements/README.css +47 -0
- package/source/_imports/elements/figure.css +23 -0
- package/source/_imports/elements/html-elements.css +386 -0
- package/source/_imports/elements/tacc-search-bar.css +19 -0
- package/source/_imports/elements/tacc-search-bar.md +20 -0
- package/source/_imports/generics/README.css +24 -0
- package/source/_imports/generics/README.md +9 -0
- package/source/_imports/objects/README.css +22 -0
- package/source/_imports/objects/o-flex-item-table-wrap.css +50 -0
- package/source/_imports/objects/o-grid.css +131 -0
- package/source/_imports/objects/o-grid.html +64 -0
- package/source/_imports/objects/o-offset-content.css +51 -0
- package/source/_imports/objects/o-section.css +270 -0
- package/source/_imports/objects/o-section.html +73 -0
- package/source/_imports/objects/o-site.css +26 -0
- package/source/_imports/objects/o-site.html +11 -0
- package/source/_imports/settings/README.css +65 -0
- package/source/_imports/settings/border.css +15 -0
- package/source/_imports/settings/color.css +30 -0
- package/source/_imports/settings/font.css +49 -0
- package/source/_imports/settings/max-width.css +31 -0
- package/source/_imports/settings/space.css +36 -0
- package/source/_imports/tools/README.css +17 -0
- package/source/_imports/tools/media-queries.css +48 -0
- package/source/_imports/tools/x-article-link.css +62 -0
- package/source/_imports/tools/x-center.css +60 -0
- package/source/_imports/tools/x-fake-border.css +72 -0
- package/source/_imports/tools/x-grid.css +116 -0
- package/source/_imports/tools/x-layout.css +86 -0
- package/source/_imports/tools/x-overlay.css +28 -0
- package/source/_imports/tools/x-truncate.css +47 -0
- package/source/_imports/trumps/README.css +79 -0
- package/source/_imports/trumps/icon.css +31 -0
- package/source/_imports/trumps/icon.fonts.css +316 -0
- package/source/_imports/trumps/s-article-list.css +240 -0
- package/source/_imports/trumps/s-article-list.html +20 -0
- package/source/_imports/trumps/s-article-preview.css +253 -0
- package/source/_imports/trumps/s-article-preview.html +30 -0
- package/source/_imports/trumps/s-blockquote.css +45 -0
- package/source/_imports/trumps/s-breadcrumbs.css +69 -0
- package/source/_imports/trumps/s-cms-nav.css +11 -0
- package/source/_imports/trumps/s-cms-nav.html +41 -0
- package/source/_imports/trumps/s-document.css +142 -0
- package/source/_imports/trumps/s-footer.css +16 -0
- package/source/_imports/trumps/s-footer.html +3 -0
- package/source/_imports/trumps/s-guide-doc.css +77 -0
- package/source/_imports/trumps/s-header.css +181 -0
- package/source/_imports/trumps/s-header.html +46 -0
- package/source/_imports/trumps/s-inline-dl.css +35 -0
- package/source/_imports/trumps/s-portal-nav.css +20 -0
- package/source/_imports/trumps/s-portal-nav.html +37 -0
- package/source/_imports/trumps/s-style-guide.css +52 -0
- package/source/_imports/trumps/s-system-specs.css +123 -0
- package/source/_imports/trumps/tacc-search-bar.css +108 -0
- package/source/_imports/trumps/tacc-search-bar.html +11 -0
- package/source/_imports/trumps/u-empty.css +18 -0
- package/source/_imports/trumps/u-hide.css +27 -0
- package/source/_imports/trumps/u-nested-text-content.css +14 -0
- package/source/_tests/README.md +33 -0
- package/source/_tests/postcss-extend.css +80 -0
- package/source/_tests/postcss-preset-env.css +75 -0
- package/source/_tests.css +12 -0
- package/source/_themes/README.md +5 -0
- package/source/_themes/TODO.md +4 -0
- package/source/_themes/default.json +21 -0
- package/source/_themes/has-dark-logo.json +21 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Header
|
|
3
|
+
|
|
4
|
+
Styles for elements within a header that has third-party code:
|
|
5
|
+
|
|
6
|
+
- FontAwesome icons
|
|
7
|
+
(for Portal navigation)
|
|
8
|
+
- Bootstrap
|
|
9
|
+
(for CMS navigation)
|
|
10
|
+
(for Portal navigation)
|
|
11
|
+
- a subset of Bootstrap 3.3.7
|
|
12
|
+
(for CMS body content, can affect navigation)
|
|
13
|
+
|
|
14
|
+
Markup: s-header.html
|
|
15
|
+
|
|
16
|
+
Styleguide Trumps.Scopes.Header
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/* WARNING: NO-R/EM: Until Frontera CMS drops Bootstrap 3.7.1 (for old design)…
|
|
20
|
+
`em` nor `rem` was not allowed because results were not consistent.
|
|
21
|
+
UPDATE: As of PR #312, this has likely changed (untested). */
|
|
22
|
+
|
|
23
|
+
.s-header {
|
|
24
|
+
font-size: 16px; /* NO-R/EM: Overwrite `bootstrap.3.3.7.css` */
|
|
25
|
+
line-height: 1.4; /* `body` line-height differs between CMS, Portal, Docs */
|
|
26
|
+
|
|
27
|
+
/* FAQ: Asssigning this font is only necessary for the User Guide,
|
|
28
|
+
because it has a different `body` font. Otherwise, this style
|
|
29
|
+
repeats the CMS and Portal `body` font. But, with this style,
|
|
30
|
+
the header may be moved to a future page/site without losing font */
|
|
31
|
+
/* TODO: Find a way to be safe, but not redundant */
|
|
32
|
+
font-family: var(--global-font-family);
|
|
33
|
+
/* Copied from Portal (via `body`) */
|
|
34
|
+
-webkit-font-smoothing: antialiased;
|
|
35
|
+
-moz-osx-font-smoothing: grayscale;
|
|
36
|
+
|
|
37
|
+
/* To hide border, set this in theme to match `--header-bkgd-color` value */
|
|
38
|
+
border-bottom: 1px solid env(--header-major-border-color);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Affiliation */
|
|
42
|
+
|
|
43
|
+
/* SEE: taccsite_cms/static/site_cms/css/src/_imports/branding_logos.css */
|
|
44
|
+
|
|
45
|
+
/* Logo */
|
|
46
|
+
|
|
47
|
+
.s-header .navbar-brand {
|
|
48
|
+
/* If branding is short enough, then align position of first CMS nav link with Portal "Dashboard" header */
|
|
49
|
+
/* WARNING: This is a manual value; if Portal interface changes, then this may need to change */
|
|
50
|
+
min-width: 176px;
|
|
51
|
+
margin-right: 16px; /* NO-R/EM: 1rem (from Bootstrap via `.navbar-brand`) */
|
|
52
|
+
padding: 0;
|
|
53
|
+
|
|
54
|
+
color: env(--header-text-color);
|
|
55
|
+
/* text-decoration: none; */ /* already provided by Bootstrap */
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Navigation */
|
|
59
|
+
|
|
60
|
+
/* On wide viewport, prevent header resize from dynamic content */
|
|
61
|
+
/* CAVEAT: This is only for Portal and Docs which dynamically load content */
|
|
62
|
+
@media only screen and (min-width: 1201px) {
|
|
63
|
+
.s-header.navbar {
|
|
64
|
+
height: 50px;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.s-header.navbar {
|
|
69
|
+
/* Make horizontal padding match the horizontal content buffer in Portal */
|
|
70
|
+
/* FAQ: The `calc()` keeps track of disparate source of space values */
|
|
71
|
+
/* `16px` = `1rem` from Portal (via `#sidebar .nav-content`) */
|
|
72
|
+
/* `20px` from Portal (via `.nav-link`) */
|
|
73
|
+
--nav-padding-vert: 5px;
|
|
74
|
+
--nav-padding-horz: calc(16px + 20px);
|
|
75
|
+
|
|
76
|
+
background-color: env(--header-bkgd-color);
|
|
77
|
+
padding: var(--nav-padding-vert) var(--nav-padding-horz);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* Navigation: Links */
|
|
81
|
+
|
|
82
|
+
.s-header .nav-link {
|
|
83
|
+
--line-height: 24px;
|
|
84
|
+
--border-width: 4px;
|
|
85
|
+
--border-offset: calc(var(--nav-padding-vert) - var(--border-width));
|
|
86
|
+
--border-color: rgb(213, 181, 124);
|
|
87
|
+
|
|
88
|
+
/* The nav vertical padding does not match the link border, so the alignment
|
|
89
|
+
of the link border with the bottom of the header is off by small amount */
|
|
90
|
+
position: relative;
|
|
91
|
+
top: var(--border-offset);
|
|
92
|
+
|
|
93
|
+
line-height: var(--line-height);
|
|
94
|
+
|
|
95
|
+
/* If link text uses 2 lines, header grows taller (but it must not do so) */
|
|
96
|
+
white-space: nowrap;
|
|
97
|
+
}
|
|
98
|
+
.s-header .nav-link:hover,
|
|
99
|
+
.s-header .nav-link:focus,
|
|
100
|
+
.s-header .nav-link:active,
|
|
101
|
+
.s-header .nav-item.active .nav-link {
|
|
102
|
+
border-width: 0 0 var(--border-width);
|
|
103
|
+
border-style: solid;
|
|
104
|
+
border-color: var(--border-color);
|
|
105
|
+
margin-bottom: calc(var(--border-width) * -1);
|
|
106
|
+
}
|
|
107
|
+
/* HACK: Using an ID selector, because Bootstrap has overspecific selectors */
|
|
108
|
+
#s-header .nav-link,
|
|
109
|
+
/* HACK: Support `span.nav-link` having children `a` and `a.dropdown-toggle-split` */
|
|
110
|
+
#s-header .nav-link > a {
|
|
111
|
+
color: env(--header-text-color);
|
|
112
|
+
/* text-decoration: none; */ /* already provided by Bootstrap */
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Navigation: Links: Responsive Design */
|
|
116
|
+
|
|
117
|
+
/* Tweak Bootstrap `_nav.scss` (which selects via `navbar-expand-` class) */
|
|
118
|
+
.s-header[class*="navbar-expand-"] .navbar-nav .nav-link {
|
|
119
|
+
padding-top: 8px; /* NO-R/EM: 0.5rem (from Bootstrap) */
|
|
120
|
+
padding-bottom: 8px; /* NO-R/EM: 0.5rem (from Bootstrap) */
|
|
121
|
+
|
|
122
|
+
padding-right: 14px; /* NO-R/EM: .875rem (overwrite Bootstrap) */
|
|
123
|
+
padding-left: 14px; /* NO-R/EM: .875rem (overwrite Bootstrap) */
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* Search */
|
|
127
|
+
|
|
128
|
+
/* Create a line between search bar and login */
|
|
129
|
+
/* FAQ: The line should only exist if both elements are present */
|
|
130
|
+
.s-header .s-search-bar ~ .s-portal-nav {
|
|
131
|
+
border-left: 1px solid env(--header-minor-border-color);
|
|
132
|
+
|
|
133
|
+
margin-left: 12px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Dropdown */
|
|
137
|
+
|
|
138
|
+
.dropdown-menu {
|
|
139
|
+
font-size: 16px; /* NO-R/EM: 1rem (from Bootstrap via `.dropdown-menu`) */
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* Icons */
|
|
143
|
+
|
|
144
|
+
/* HACK: Using FontAwesome as placeholder */
|
|
145
|
+
.s-header [class*="fa-"] {
|
|
146
|
+
width: 27px; /* NO-R/EM: 1.25em (from Portal `.fa`—FP-228 will deprecate it) */
|
|
147
|
+
text-align: center;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* Theme-based Icon Colors */
|
|
151
|
+
|
|
152
|
+
/* Sets theme-based colors for selectors in themes that use third party images for icons or need color overrides. */
|
|
153
|
+
/* This will eventually be superceded by GH-101. */
|
|
154
|
+
|
|
155
|
+
/* For black icons:
|
|
156
|
+
- create a selector definition in s-header.css:
|
|
157
|
+
.selector-target {
|
|
158
|
+
filter: env(--targeted-selector);
|
|
159
|
+
};
|
|
160
|
+
- set the environment_variables value in theme.*.json to inverted value:
|
|
161
|
+
"environment-variables": {
|
|
162
|
+
...
|
|
163
|
+
"--targeted-selector": "invert(100%)"
|
|
164
|
+
}
|
|
165
|
+
*/
|
|
166
|
+
|
|
167
|
+
/* For themed icons using a color:
|
|
168
|
+
- create a selector definition in s-header.css:
|
|
169
|
+
.selector-target {
|
|
170
|
+
mix-blend-mode: "overlay";
|
|
171
|
+
filter: env(--selector-theme-color);
|
|
172
|
+
};
|
|
173
|
+
- set the environment_variables value in theme.*.json to the desired color value:
|
|
174
|
+
"environment-variables": {
|
|
175
|
+
...
|
|
176
|
+
"--selector-theme-color": "#ABCDEF"
|
|
177
|
+
} */
|
|
178
|
+
|
|
179
|
+
.navbar-toggler-icon {
|
|
180
|
+
filter: env(--menu-toggle-icon);
|
|
181
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- FAQ:
|
|
2
|
+
|
|
3
|
+
This is the markup of the #s-header, as of 2020-03-11,
|
|
4
|
+
from https://frontera-portal.tacc.utexas.edu/. It has:
|
|
5
|
+
|
|
6
|
+
- Bootstrap class names
|
|
7
|
+
(also via `./s-portal-nav.html`)
|
|
8
|
+
(also via `./s-cms-nav.html`)
|
|
9
|
+
- Bootstrap attributes
|
|
10
|
+
(also via `./s-portal-nav.html`)
|
|
11
|
+
- multiple internal scope (`s-`) classes
|
|
12
|
+
(only via `./s-portal-nav.html`)
|
|
13
|
+
(only via `./s-cms-nav.html`)
|
|
14
|
+
- FontAwesome class names
|
|
15
|
+
(only via `./s-portal-nav.html`)
|
|
16
|
+
- illegally-nested markup (`ul > div > li`)
|
|
17
|
+
(only via `./s-portal-nav.html`)
|
|
18
|
+
-->
|
|
19
|
+
<nav id="s-header" class="s-header navbar navbar-expand-lg navbar-dark">
|
|
20
|
+
|
|
21
|
+
<a class="navbar-brand" href="/">
|
|
22
|
+
<img
|
|
23
|
+
src="/static/site_cms/img/org_logos/portal.png"
|
|
24
|
+
alt="Portal Logo"
|
|
25
|
+
class="nav-logo-double nav-logo-frontera-double"
|
|
26
|
+
/>
|
|
27
|
+
</a>
|
|
28
|
+
|
|
29
|
+
<button
|
|
30
|
+
class="navbar-toggler"
|
|
31
|
+
type="button"
|
|
32
|
+
data-toggle="collapse"
|
|
33
|
+
data-target="#navbarsExpandTarget"
|
|
34
|
+
aria-controls="navbarsExpandTarget"
|
|
35
|
+
aria-expanded="false"
|
|
36
|
+
aria-label="Toggle navigation"
|
|
37
|
+
>
|
|
38
|
+
<span class="navbar-toggler-icon"></span>
|
|
39
|
+
</button>
|
|
40
|
+
|
|
41
|
+
<div class="collapse navbar-collapse" id="navbarsExpandTarget">
|
|
42
|
+
{% include "./s-cms-nav.html" %}
|
|
43
|
+
|
|
44
|
+
{% include "./s-portal-nav.html" %}
|
|
45
|
+
</div>
|
|
46
|
+
</nav>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
"Inline" Description List
|
|
3
|
+
|
|
4
|
+
Of `<dl>` (description lists), make terms in-line with descritpions.
|
|
5
|
+
|
|
6
|
+
Markup:
|
|
7
|
+
<dl class="s-inline-dl">
|
|
8
|
+
<dt>Apple</dt><dd>Red round fruit.</dd>
|
|
9
|
+
<dt>Dog</dt><dd>Loud loyal mammal.</dd>
|
|
10
|
+
<dt>Star</dt><dd>Giant fire ball.</dd>
|
|
11
|
+
</dl>
|
|
12
|
+
|
|
13
|
+
Styleguide Trumps.Scopes.InlineDescriptionList
|
|
14
|
+
*/
|
|
15
|
+
dl.s-inline-dl dt {
|
|
16
|
+
display: block;
|
|
17
|
+
float: left;
|
|
18
|
+
|
|
19
|
+
/* Remove space between <dt> and <dd> (from our styles) */
|
|
20
|
+
/* SEE: ../elments/html-elements.html */
|
|
21
|
+
margin-bottom: 0;
|
|
22
|
+
|
|
23
|
+
font-weight: var(--bold);
|
|
24
|
+
}
|
|
25
|
+
dl.s-inline-dl dd {
|
|
26
|
+
clear: right;
|
|
27
|
+
|
|
28
|
+
/* Remove space between <dd>'s (from Bootstrap) */
|
|
29
|
+
margin-bottom: 0;
|
|
30
|
+
}
|
|
31
|
+
dl.s-inline-dl dt::after {
|
|
32
|
+
content: ':';
|
|
33
|
+
|
|
34
|
+
margin-inline-end: 0.25em;
|
|
35
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Portal Navigation
|
|
3
|
+
|
|
4
|
+
Styles for elements within Portal navigation that has third-party code:
|
|
5
|
+
|
|
6
|
+
- Bootstrap 4.3.1
|
|
7
|
+
|
|
8
|
+
Markup: s-portal-nav.html
|
|
9
|
+
|
|
10
|
+
Styleguide Trumps.Scopes.PortalNav
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/* WARNING: NO-R/EM: Until Frontera CMS drops Bootstrap 3.7.1 (for old design)…
|
|
14
|
+
`em` nor `rem` was not allowed because results were not consistent.
|
|
15
|
+
UPDATE: As of PR #312, this has likely changed (untested). */
|
|
16
|
+
|
|
17
|
+
.s-portal-nav {
|
|
18
|
+
/* Override `.navbar` */
|
|
19
|
+
text-transform: none;
|
|
20
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!-- FAQ:
|
|
2
|
+
|
|
3
|
+
This is the markup of the #s-header, as of 2021-06,
|
|
4
|
+
from https://frontera-portal.tacc.utexas.edu/. It has:
|
|
5
|
+
|
|
6
|
+
- Bootstrap class names
|
|
7
|
+
- Bootstrap attributes
|
|
8
|
+
-->
|
|
9
|
+
<ul class="s-portal-nav navbar-nav">
|
|
10
|
+
<!-- When user is not logged in, there are zero dropdown(-*) classes -->
|
|
11
|
+
<li class="nav-item dropdown">
|
|
12
|
+
<a class="nav-link dropdown-toggle"
|
|
13
|
+
href="#"
|
|
14
|
+
data-toggle="dropdown"
|
|
15
|
+
aria-haspopup="true"
|
|
16
|
+
aria-expanded="false"
|
|
17
|
+
>
|
|
18
|
+
<i class="icon icon-user"></i>
|
|
19
|
+
<span>username</span>
|
|
20
|
+
<span class="sr-only">Toggle Dropdown</span>
|
|
21
|
+
</a>
|
|
22
|
+
<nav class="dropdown-menu dropdown-menu-right show">
|
|
23
|
+
<a class="dropdown-item" href="/workbench/dashboard">
|
|
24
|
+
<i class="icon icon-dashboard"></i> My Dashboard
|
|
25
|
+
</a>
|
|
26
|
+
<a class="dropdown-item" href="/workbench/onboarding/admin">
|
|
27
|
+
<i class="icon icon-approved-boxed"></i> Onboarding Admin
|
|
28
|
+
</a>
|
|
29
|
+
<a class="dropdown-item" href="/accounts/profile/">
|
|
30
|
+
<i class="icon icon-gear"></i> My Account
|
|
31
|
+
</a>
|
|
32
|
+
<a class="dropdown-item" href="/accounts/logout">
|
|
33
|
+
<i class="icon icon-user"></i> Log Out
|
|
34
|
+
</a>
|
|
35
|
+
</nav>
|
|
36
|
+
</li>
|
|
37
|
+
</ul>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Style Guide
|
|
3
|
+
|
|
4
|
+
A style guide. This is intended for:
|
|
5
|
+
- a design system
|
|
6
|
+
- a writing style guide
|
|
7
|
+
- a developer style guide
|
|
8
|
+
|
|
9
|
+
Styleguide Trumps.Scopes.StyleGuide
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/* ELEMENTS */
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/* ELEMENTS: Content Sectioning */
|
|
21
|
+
|
|
22
|
+
/* NOTE: Similar to `s-document` "ELEMENTS: Content Sectioning" */
|
|
23
|
+
|
|
24
|
+
/* To give little margin above isolated headings for sections */
|
|
25
|
+
/* FAQ: Headings with no prior sibling need spacing before the heading */
|
|
26
|
+
/* FAQ: Headings that begin `o-section` already have spacing from `o-section` */
|
|
27
|
+
.s-style-guide section:not(.o-section) > h1:first-child,
|
|
28
|
+
.s-style-guide section:not(.o-section) > h2:first-child,
|
|
29
|
+
.s-style-guide section:not(.o-section) > h3:first-child,
|
|
30
|
+
.s-style-guide section:not(.o-section) > h4:first-child,
|
|
31
|
+
.s-style-guide section:not(.o-section) > h5:first-child,
|
|
32
|
+
.s-style-guide section:not(.o-section) > h6:first-child,
|
|
33
|
+
/* FAQ: Headings after non-headings need spacing before the heading */
|
|
34
|
+
/* FAQ: Headings after headings already have spacing from prior heading */
|
|
35
|
+
.s-style-guide section > :not(h1, h2, h3, h4, h5, h6) + h1,
|
|
36
|
+
.s-style-guide section > :not(h1, h2, h3, h4, h5, h6) + h2,
|
|
37
|
+
.s-style-guide section > :not(h1, h2, h3, h4, h5, h6) + h3,
|
|
38
|
+
.s-style-guide section > :not(h1, h2, h3, h4, h5, h6) + h4,
|
|
39
|
+
.s-style-guide section > :not(h1, h2, h3, h4, h5, h6) + h5,
|
|
40
|
+
.s-style-guide section > :not(h1, h2, h3, h4, h5, h6) + h6 {
|
|
41
|
+
margin-top: var(--global-space--x-large);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* To give much margin below all headings for sections */
|
|
45
|
+
.s-style-guide section > h1,
|
|
46
|
+
.s-style-guide section > h2,
|
|
47
|
+
.s-style-guide section > h3,
|
|
48
|
+
.s-style-guide section > h4,
|
|
49
|
+
.s-style-guide section > h5,
|
|
50
|
+
.s-style-guide section > h6 {
|
|
51
|
+
margin-bottom: var(--global-space--normal);
|
|
52
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/*
|
|
2
|
+
System Specifications
|
|
3
|
+
|
|
4
|
+
Styles for System Specifications content which assumes external code:
|
|
5
|
+
|
|
6
|
+
- `c-data-list`
|
|
7
|
+
(for "Data List")
|
|
8
|
+
|
|
9
|
+
Styleguide Trumps.Scopes.SystemSpecs
|
|
10
|
+
*/
|
|
11
|
+
@import url("_imports/tools/media-queries.css");
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/* Cascade */
|
|
16
|
+
|
|
17
|
+
.s-system-specs {
|
|
18
|
+
font-size: var(--global-font-size--small);
|
|
19
|
+
font-weight: var(--global-font-weight--medium);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
/* Layout */
|
|
25
|
+
|
|
26
|
+
@media only screen and (--narrow-and-above) {
|
|
27
|
+
.s-system-specs {
|
|
28
|
+
display: flow-root;
|
|
29
|
+
}
|
|
30
|
+
.s-system-specs > * {
|
|
31
|
+
display: inline-block;
|
|
32
|
+
}
|
|
33
|
+
.s-system-specs > figure {
|
|
34
|
+
float: left;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
/* Spacing */
|
|
41
|
+
|
|
42
|
+
.s-system-specs {
|
|
43
|
+
--row-height: 32px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.s-system-specs > aside {
|
|
47
|
+
margin-top: var(--row-height);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@media only screen and (--medium-and-below) {
|
|
51
|
+
.s-system-specs > figure {
|
|
52
|
+
margin-bottom: var(--row-height);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
/* Sizes */
|
|
59
|
+
|
|
60
|
+
@media only screen and (--medium-and-above) {
|
|
61
|
+
.s-system-specs {
|
|
62
|
+
--col-width--thin: 42%;
|
|
63
|
+
--col-width--wide: 48%;
|
|
64
|
+
--col-gutter: 10%;
|
|
65
|
+
--col-padding: 40px;
|
|
66
|
+
|
|
67
|
+
padding-inline: var(--col-padding);
|
|
68
|
+
}
|
|
69
|
+
.s-system-specs > div,
|
|
70
|
+
.s-system-specs > aside {
|
|
71
|
+
padding-inline: var(--col-padding);
|
|
72
|
+
}
|
|
73
|
+
.s-system-specs > div {
|
|
74
|
+
width: var(--col-width--thin);
|
|
75
|
+
}
|
|
76
|
+
.s-system-specs > figure {
|
|
77
|
+
width: var(--col-width--wide);
|
|
78
|
+
margin-right: var(--col-gutter);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@media only screen and (--wide-and-above) {
|
|
83
|
+
.s-system-specs > aside {
|
|
84
|
+
width: var(--col-width--thin);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Position */
|
|
89
|
+
|
|
90
|
+
.s-system-specs > figure > img {
|
|
91
|
+
width: 100%;
|
|
92
|
+
display: block; /* to support margin */
|
|
93
|
+
}
|
|
94
|
+
.s-system-specs > figure > figcaption {
|
|
95
|
+
/* To nudge upward on top of image */
|
|
96
|
+
position: relative; /* to prevent image from appearing on top */
|
|
97
|
+
margin-top: -40px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@media only screen and (--medium-and-below) {
|
|
101
|
+
.s-system-specs > figure > img {
|
|
102
|
+
/* To center horizontally */
|
|
103
|
+
width: 60%;
|
|
104
|
+
margin-left: auto;
|
|
105
|
+
margin-right: auto;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
@media only screen and (--medium-and-above) {
|
|
109
|
+
.s-system-specs > figure > figcaption {
|
|
110
|
+
/* To center horizontally */
|
|
111
|
+
width: 80%;
|
|
112
|
+
margin-left: auto;
|
|
113
|
+
margin-right: auto;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
/* Components */
|
|
120
|
+
|
|
121
|
+
.s-system-specs .c-data-list__key a {
|
|
122
|
+
font-weight: var(--medium);
|
|
123
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/* SEE: _imports/elements/tacc-search-bar.css */
|
|
2
|
+
/*
|
|
3
|
+
Search Bar
|
|
4
|
+
|
|
5
|
+
Styles for TACC's global search bar.
|
|
6
|
+
|
|
7
|
+
Styleguide Scopes.SearchBar
|
|
8
|
+
*/
|
|
9
|
+
/* TODO: Import within `site.header.css`, not `site.tacc-search-bar.css`.
|
|
10
|
+
|
|
11
|
+
1. Use `[data-status="loaded"]` (to learn more, search other references).
|
|
12
|
+
2. Replace `:host` with `.s-search-bar`.
|
|
13
|
+
2. Replace `[part="…"]` with `::part(…)`.
|
|
14
|
+
3. Rename file to `s-search-bar`.
|
|
15
|
+
4. Load file alongside `s-header.css`.
|
|
16
|
+
|
|
17
|
+
This is how it works in GH-101.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/* Variables */
|
|
23
|
+
|
|
24
|
+
:host {
|
|
25
|
+
/* GH-101: Values for any width */
|
|
26
|
+
--button-horz-pad: 10px;
|
|
27
|
+
--input-horz-pad: 0.125em;
|
|
28
|
+
|
|
29
|
+
/* GH-101: Values for expanded (desktop) width */
|
|
30
|
+
--input-height: 26px;
|
|
31
|
+
--button-font-size: 18px;
|
|
32
|
+
--input-font-size: 14px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
/* Container */
|
|
38
|
+
|
|
39
|
+
:host {
|
|
40
|
+
/* To remove all whitespace */
|
|
41
|
+
/* NOTE: A `font-size: 0` is not necessary if tag whitespace is removed */
|
|
42
|
+
font-size: 0;
|
|
43
|
+
}
|
|
44
|
+
:host [part="form"] {
|
|
45
|
+
/* To ensure search field font matches Portal */
|
|
46
|
+
/* GH-101: Set and rely on header font */
|
|
47
|
+
/* SEE: https://confluence.tacc.utexas.edu/x/nB4FDg */
|
|
48
|
+
font-family: "Roboto";
|
|
49
|
+
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
|
|
53
|
+
position: relative;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Content */
|
|
57
|
+
|
|
58
|
+
:host [part="button"] {
|
|
59
|
+
font-size: 16px; /* WARNING: Do not use `rem` until `html { 62.5%; }` */
|
|
60
|
+
position: absolute;
|
|
61
|
+
left: 0;
|
|
62
|
+
top: 50%;
|
|
63
|
+
transform: translateY(-50%);
|
|
64
|
+
|
|
65
|
+
box-sizing: content-box;
|
|
66
|
+
height: var(--input-height, 38px); /* GH-101: Desktop value */
|
|
67
|
+
align-items: center; /* works if has flex layout (does if class is `.icon`) */
|
|
68
|
+
|
|
69
|
+
margin: 0;
|
|
70
|
+
padding: 0 var(--button-horz-pad);
|
|
71
|
+
|
|
72
|
+
background-color: transparent;
|
|
73
|
+
border: none;
|
|
74
|
+
|
|
75
|
+
color: env(--header-text-color);
|
|
76
|
+
font-size: var(--button-font-size);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
:host [part="input"] {
|
|
80
|
+
display: block;
|
|
81
|
+
width: 100%;
|
|
82
|
+
height: var(--input-height);
|
|
83
|
+
|
|
84
|
+
margin: 0;
|
|
85
|
+
padding-top: 0;
|
|
86
|
+
padding-bottom: 0;
|
|
87
|
+
/* To indent text by the width of embedded button plus actual padding */
|
|
88
|
+
/* FAQ: Using `text-indent` has text overflow as user enters beyond width */
|
|
89
|
+
/* HELP: Using `text-indent` is prefered (simpler)... how to do sans bug? */
|
|
90
|
+
padding-left: calc(
|
|
91
|
+
var(--button-horz-pad) +
|
|
92
|
+
var(--button-font-size) +
|
|
93
|
+
var(--button-horz-pad) +
|
|
94
|
+
var(--input-horz-pad)
|
|
95
|
+
);
|
|
96
|
+
padding-right: var(--input-horz-pad);
|
|
97
|
+
|
|
98
|
+
background-color: env(--header-search-bkgd-color);
|
|
99
|
+
border: var(--global-border-width--normal) solid env(--header-search-brdr-color);
|
|
100
|
+
border-radius: 5px;
|
|
101
|
+
|
|
102
|
+
color: env(--header-text-color);
|
|
103
|
+
font-size: var(--input-font-size);
|
|
104
|
+
}
|
|
105
|
+
:host [part="input"]::placeholder {
|
|
106
|
+
color: env(--header-text-color);
|
|
107
|
+
opacity: 0.5;
|
|
108
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<form part="form">
|
|
2
|
+
<label for="tacc-search-bar" class="u-hide--visually" part="label">
|
|
3
|
+
Search
|
|
4
|
+
</label>
|
|
5
|
+
|
|
6
|
+
<input id="tacc-search-bar" part="input" type="search" />
|
|
7
|
+
|
|
8
|
+
<button part="button" type="submit" class="icon icon-search">
|
|
9
|
+
<span class="u-hide--visually">Search</span>
|
|
10
|
+
</button>
|
|
11
|
+
</form>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Empty
|
|
3
|
+
|
|
4
|
+
Any element that must be treated as `:empty` (even if it is not).
|
|
5
|
+
|
|
6
|
+
Examples:
|
|
7
|
+
- `o-section.css`:
|
|
8
|
+
```
|
|
9
|
+
.o-section--intro > :empty:not(img),
|
|
10
|
+
.o-section--intro > .u-empty { display: none; }
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Styleguide Trumps.Utilities.Empty
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
.u-empty {
|
|
17
|
+
/* FAQ: This class should NOT have any styles on its own. It is a unique class that allows non-empty content to appear empty to TACC stylesheets that recognize it. Any TACC stylesheet selector that recognizes `:empty` elements should also recognize `u-empty` elements. */
|
|
18
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Hide
|
|
3
|
+
|
|
4
|
+
Different ways and reasons to hide elements. (More coming in GH-101.)
|
|
5
|
+
|
|
6
|
+
.u-hide--visually - Hide only for visual UI
|
|
7
|
+
|
|
8
|
+
Styleguide Core.Trumps.Utilities.Hide
|
|
9
|
+
*/
|
|
10
|
+
/* TODO: (GH-101) Create n' import `x-hide` and provide more `u-hide` options */
|
|
11
|
+
/* SEE: https://github.com/TACC/Core-CMS/pull/222 */
|
|
12
|
+
|
|
13
|
+
/* To hide content only from visual interfaces */
|
|
14
|
+
/* SEE: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/ */
|
|
15
|
+
.u-hide--visually:not(:focus, :active) {
|
|
16
|
+
clip: rect(0 0 0 0);
|
|
17
|
+
clip-path: inset(50%);
|
|
18
|
+
height: 1px;
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
position: absolute;
|
|
21
|
+
white-space: nowrap;
|
|
22
|
+
width: 1px;
|
|
23
|
+
|
|
24
|
+
/* Added by TACC based on other examples */
|
|
25
|
+
border: none;
|
|
26
|
+
padding: 0;
|
|
27
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Nested Text Content
|
|
3
|
+
|
|
4
|
+
Any content that should be nested like a list (`<ol>`, `<ul>`) would be.
|
|
5
|
+
|
|
6
|
+
Examples:
|
|
7
|
+
- A definition list among paragraphs
|
|
8
|
+
|
|
9
|
+
Styleguide Trumps.Utilities.NestedTextContent
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
.u-nested-text-content {
|
|
13
|
+
padding-left: var(--global-space--list-indent);
|
|
14
|
+
}
|