mirror of
https://github.com/jdan/98.css.git
synced 2025-09-09 05:30:49 +02:00
Updates
This commit is contained in:
File diff suppressed because one or more lines are too long
238
index.html
238
index.html
@@ -43,6 +43,7 @@
|
||||
<li><a href="#tree-view">TreeView</a></li>
|
||||
<li><a href="#tabs">Tabs</a></li>
|
||||
<li><a href="#table-view">TableView</a></li>
|
||||
<li><a href="#progress-indicator">Progress Indicator</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#issues-contributing-etc">Issues, Contributing, etc.</a></li>
|
||||
@@ -152,6 +153,20 @@
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
You can add the class <code>default</code> to any button to apply additional styling,
|
||||
useful when communicating to the user what default action would happen in the active window if
|
||||
the <kbd>Enter</kbd> key was pressed on Windows 98.
|
||||
</p>
|
||||
|
||||
<div class="example">
|
||||
<button class="default">OK</button>
|
||||
<details>
|
||||
<summary>Show code</summary>
|
||||
<pre><code><span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"default"</span>></span>OK<span class="hljs-tag"></<span class="hljs-name">button</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
When buttons are clicked, the raised borders become sunken.
|
||||
The following button is simulated to be in the pressed (active) state.
|
||||
@@ -546,41 +561,6 @@
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Other types of HTML5 text inputs are also supported.
|
||||
</p>
|
||||
|
||||
<div class="example">
|
||||
<div class="field-row-stacked" style="width: 200px">
|
||||
<label for="text22">Email</label>
|
||||
<input id="text22" type="email" value="admin@contoso.com"/>
|
||||
</div>
|
||||
<div class="field-row-stacked" style="width: 200px">
|
||||
<label for="text23">Password</label>
|
||||
<input id="text23" type="password" value="hunter2"/>
|
||||
</div>
|
||||
<div class="field-row-stacked" style="width: 200px">
|
||||
<label for="text24">Favorite Number</label>
|
||||
<input id="text24" type="number" value="98"/>
|
||||
</div>
|
||||
<details>
|
||||
<summary>Show code</summary>
|
||||
<pre><code><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"field-row-stacked"</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"width: 200px"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"text22"</span>></span>Email<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"text22"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"admin@contoso.com"</span>/></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"field-row-stacked"</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"width: 200px"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"text23"</span>></span>Password<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"text23"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"password"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"hunter2"</span>/></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"field-row-stacked"</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"width: 200px"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"text24"</span>></span>Favorite Number<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"text24"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"98"</span>/></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -604,18 +584,18 @@
|
||||
|
||||
<div class="example">
|
||||
<div class="field-row" style="width: 300px">
|
||||
<label for="range25">Volume:</label>
|
||||
<label for="range26">Low</label>
|
||||
<input id="range26" type="range" min="1" max="11" value="5" />
|
||||
<label for="range27">High</label>
|
||||
<label for="range22">Volume:</label>
|
||||
<label for="range23">Low</label>
|
||||
<input id="range23" type="range" min="1" max="11" value="5" />
|
||||
<label for="range24">High</label>
|
||||
</div>
|
||||
<details>
|
||||
<summary>Show code</summary>
|
||||
<pre><code><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"field-row"</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"width: 300px"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"range25"</span>></span>Volume:<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"range26"</span>></span>Low<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"range26"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"range"</span> <span class="hljs-attr">min</span>=<span class="hljs-string">"1"</span> <span class="hljs-attr">max</span>=<span class="hljs-string">"11"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"5"</span> /></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"range27"</span>></span>High<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"range22"</span>></span>Volume:<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"range23"</span>></span>Low<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"range23"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"range"</span> <span class="hljs-attr">min</span>=<span class="hljs-string">"1"</span> <span class="hljs-attr">max</span>=<span class="hljs-string">"11"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"5"</span> /></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"range24"</span>></span>High<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
@@ -633,17 +613,17 @@
|
||||
|
||||
<div class="example">
|
||||
<div class="field-row">
|
||||
<label for="range28">Cowbell</label>
|
||||
<label for="range25">Cowbell</label>
|
||||
<div class="is-vertical">
|
||||
<input id="range28" class="has-box-indicator" type="range" min="1" max="3" step="1" value="2" />
|
||||
<input id="range25" class="has-box-indicator" type="range" min="1" max="3" step="1" value="2" />
|
||||
</div>
|
||||
</div>
|
||||
<details>
|
||||
<summary>Show code</summary>
|
||||
<pre><code><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"field-row"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"range28"</span>></span>Cowbell<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"range25"</span>></span>Cowbell<span class="hljs-tag"></<span class="hljs-name">label</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"is-vertical"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"range28"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"has-box-indicator"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"range"</span> <span class="hljs-attr">min</span>=<span class="hljs-string">"1"</span> <span class="hljs-attr">max</span>=<span class="hljs-string">"3"</span> <span class="hljs-attr">step</span>=<span class="hljs-string">"1"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"2"</span> /></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"range25"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"has-box-indicator"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"range"</span> <span class="hljs-attr">min</span>=<span class="hljs-string">"1"</span> <span class="hljs-attr">max</span>=<span class="hljs-string">"3"</span> <span class="hljs-attr">step</span>=<span class="hljs-string">"1"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"2"</span> /></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
@@ -840,6 +820,102 @@
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Each <code>aria-label</code> also has a corresponding styling class to render the title bar buttons,
|
||||
to let the <code>aria-label</code> text be in other languages without causing rendering, accessibility, or localization issues.
|
||||
</p>
|
||||
|
||||
<div class="example">
|
||||
<div class="title-bar">
|
||||
<div class="title-bar-text">A Title Bar using Button Styling Classes</div>
|
||||
<div class="title-bar-controls">
|
||||
<button aria-label="Any Text" class="minimize"></button>
|
||||
<button aria-label="Any Text" class="maximize"></button>
|
||||
<button aria-label="Any Text" class="close"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div class="title-bar">
|
||||
<div class="title-bar-text">A Maximized Title Bar using Button Styling Classes</div>
|
||||
<div class="title-bar-controls">
|
||||
<button aria-label="Any Text" class="minimize"></button>
|
||||
<button aria-label="Any Text" class="restore"></button>
|
||||
<button aria-label="Any Text" class="close"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div class="title-bar">
|
||||
<div class="title-bar-text">A Helpful Bar using Button Styling Classes</div>
|
||||
<div class="title-bar-controls">
|
||||
<button aria-label="Any Text" class="help"></button>
|
||||
<button aria-label="Any Text" class="close"></button>
|
||||
</div>
|
||||
</div>
|
||||
<details>
|
||||
<summary>Show code</summary>
|
||||
<pre><code><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar-text"</span>></span>A Title Bar using Button Styling Classes<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar-controls"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Any Text"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"minimize"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Any Text"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"maximize"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Any Text"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"close"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
|
||||
<span class="hljs-tag"><<span class="hljs-name">br</span> /></span>
|
||||
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar-text"</span>></span>A Maximized Title Bar using Button Styling Classes<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar-controls"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Any Text"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"minimize"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Any Text"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"restore"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Any Text"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"close"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
|
||||
<span class="hljs-tag"><<span class="hljs-name">br</span> /></span>
|
||||
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar-text"</span>></span>A Helpful Bar using Button Styling Classes<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar-controls"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Any Text"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"help"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Any Text"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"close"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Maximize buttons can be disabled, useful when making a window appear as if it cannot be maximized.
|
||||
</p>
|
||||
|
||||
<div class="example">
|
||||
<div class="title-bar">
|
||||
<div class="title-bar-text">A Title Bar with Maximize disabled</div>
|
||||
<div class="title-bar-controls">
|
||||
<button aria-label="Minimize"></button>
|
||||
<button aria-label="Maximize" disabled></button>
|
||||
<button aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
<details>
|
||||
<summary>Show code</summary>
|
||||
<pre><code><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar-text"</span>></span>A Title Bar with Maximize disabled<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title-bar-controls"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Minimize"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Maximize"</span> <span class="hljs-attr">disabled</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">"Close"</span>></span><span class="hljs-tag"></<span class="hljs-name">button</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
You can make a title bar "inactive" by adding <code>inactive</code> class,
|
||||
useful when making more than one window.
|
||||
@@ -1275,7 +1351,6 @@
|
||||
</div>
|
||||
</section>
|
||||
<section class="component">
|
||||
|
||||
<h3 id="table-view">TableView</h3>
|
||||
<div>
|
||||
<p>
|
||||
@@ -1354,9 +1429,16 @@
|
||||
<script>
|
||||
document.querySelectorAll('table.interactive').forEach(element => {
|
||||
element.addEventListener('click', (event) => {
|
||||
const row = event.path.find(element => element.tagName === 'TR' && element.parentElement.tagName === 'TBODY');
|
||||
if (row) {
|
||||
row.classList.toggle('highlighted');
|
||||
const highlightedClass = 'highlighted';
|
||||
const isRow = element => element.tagName === 'TR' && element.parentElement.tagName === 'TBODY';
|
||||
const newlySelectedRow = event.composedPath().find(isRow);
|
||||
const previouslySelectedRow = Array.from(newlySelectedRow.parentElement.children).filter(isRow).find(element => element.classList.contains(highlightedClass));
|
||||
if(previouslySelectedRow){
|
||||
previouslySelectedRow.classList.toggle(highlightedClass);
|
||||
}
|
||||
|
||||
if (newlySelectedRow) {
|
||||
newlySelectedRow.classList.toggle(highlightedClass);
|
||||
}
|
||||
})
|
||||
});
|
||||
@@ -1429,14 +1511,62 @@
|
||||
<span class="hljs-tag"><<span class="hljs-name">script</span>></span><span class="javascript">
|
||||
<span class="hljs-built_in">document</span>.querySelectorAll(<span class="hljs-string">'table.interactive'</span>).forEach(<span class="hljs-function"><span class="hljs-params">element</span> =></span> {
|
||||
element.addEventListener(<span class="hljs-string">'click'</span>, <span class="hljs-function">(<span class="hljs-params">event</span>) =></span> {
|
||||
<span class="hljs-keyword">const</span> row = event.path.find(<span class="hljs-function"><span class="hljs-params">element</span> =></span> element.tagName === <span class="hljs-string">'TR'</span> && element.parentElement.tagName === <span class="hljs-string">'TBODY'</span>);
|
||||
<span class="hljs-keyword">if</span> (row) {
|
||||
row.classList.toggle(<span class="hljs-string">'highlighted'</span>);
|
||||
<span class="hljs-keyword">const</span> highlightedClass = <span class="hljs-string">'highlighted'</span>;
|
||||
<span class="hljs-keyword">const</span> isRow = <span class="hljs-function"><span class="hljs-params">element</span> =></span> element.tagName === <span class="hljs-string">'TR'</span> && element.parentElement.tagName === <span class="hljs-string">'TBODY'</span>;
|
||||
<span class="hljs-keyword">const</span> newlySelectedRow = event.composedPath().find(isRow);
|
||||
<span class="hljs-keyword">const</span> previouslySelectedRow = <span class="hljs-built_in">Array</span>.from(newlySelectedRow.parentElement.children).filter(isRow).find(<span class="hljs-function"><span class="hljs-params">element</span> =></span> element.classList.contains(highlightedClass));
|
||||
<span class="hljs-keyword">if</span>(previouslySelectedRow){
|
||||
previouslySelectedRow.classList.toggle(highlightedClass);
|
||||
}
|
||||
|
||||
<span class="hljs-keyword">if</span> (newlySelectedRow) {
|
||||
newlySelectedRow.classList.toggle(highlightedClass);
|
||||
}
|
||||
})
|
||||
});
|
||||
</span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="component">
|
||||
<h3 id="progress-indicator">Progress Indicator</h3>
|
||||
<div>
|
||||
<blockquote>
|
||||
You can use a <em>progress indicator</em>, also known as a <em>progress bar control</em>, to show the percentage of completion of a lengthy operation.
|
||||
|
||||
<footer>
|
||||
— Microsoft Windows User Experience p. 189
|
||||
</footer>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
There are two types of progress bars: solid and segmented. The solid version is the default. To declare a segmented bar, you should use the <code>segmented</code> class.
|
||||
</p>
|
||||
|
||||
<div class="example">
|
||||
<div class="progress-indicator">
|
||||
<span class="progress-indicator-bar" style="width: 40%;" />
|
||||
</div>
|
||||
<details>
|
||||
<summary>Show code</summary>
|
||||
<pre><code><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"progress-indicator"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"progress-indicator-bar"</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"width: 40%;"</span> /></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<div class="example">
|
||||
<div class="progress-indicator segmented">
|
||||
<span class="progress-indicator-bar" style="width: 40%;" />
|
||||
</div>
|
||||
<details>
|
||||
<summary>Show code</summary>
|
||||
<pre><code><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"progress-indicator segmented"</span>></span>
|
||||
<span class="hljs-tag"><<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"progress-indicator-bar"</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"width: 40%;"</span> /></span>
|
||||
<span class="hljs-tag"></<span class="hljs-name">div</span>></span></code></pre>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
125
index.html.ejs
125
index.html.ejs
@@ -43,6 +43,7 @@
|
||||
<li><a href="#tree-view">TreeView</a></li>
|
||||
<li><a href="#tabs">Tabs</a></li>
|
||||
<li><a href="#table-view">TableView</a></li>
|
||||
<li><a href="#progress-indicator">Progress Indicator</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#issues-contributing-etc">Issues, Contributing, etc.</a></li>
|
||||
@@ -144,6 +145,14 @@
|
||||
<input type="submit" />
|
||||
<input type="reset" /> `)%>
|
||||
|
||||
<p>
|
||||
You can add the class <code>default</code> to any button to apply additional styling,
|
||||
useful when communicating to the user what default action would happen in the active window if
|
||||
the <kbd>Enter</kbd> key was pressed on Windows 98.
|
||||
</p>
|
||||
|
||||
<%- example(`<button class="default">OK</button>`)%>
|
||||
|
||||
<p>
|
||||
When buttons are clicked, the raised borders become sunken.
|
||||
The following button is simulated to be in the pressed (active) state.
|
||||
@@ -404,26 +413,6 @@
|
||||
<input id="text${getCurrentId()}" disabled type="text" value="Windows Green"/>
|
||||
</div>
|
||||
`) %>
|
||||
|
||||
<p>
|
||||
Other types of HTML5 text inputs are also supported.
|
||||
</p>
|
||||
|
||||
<%- example(`
|
||||
<div class="field-row-stacked" style="width: 200px">
|
||||
<label for="text${getNewId()}">Email</label>
|
||||
<input id="text${getCurrentId()}" type="email" value="admin@contoso.com"/>
|
||||
</div>
|
||||
<div class="field-row-stacked" style="width: 200px">
|
||||
<label for="text${getNewId()}">Password</label>
|
||||
<input id="text${getCurrentId()}" type="password" value="hunter2"/>
|
||||
</div>
|
||||
<div class="field-row-stacked" style="width: 200px">
|
||||
<label for="text${getNewId()}">Favorite Number</label>
|
||||
<input id="text${getCurrentId()}" type="number" value="98"/>
|
||||
</div>
|
||||
`) %>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -604,6 +593,59 @@
|
||||
</div>
|
||||
</div>
|
||||
`) %>
|
||||
|
||||
<p>
|
||||
Each <code>aria-label</code> also has a corresponding styling class to render the title bar buttons,
|
||||
to let the <code>aria-label</code> text be in other languages without causing rendering, accessibility, or localization issues.
|
||||
</p>
|
||||
|
||||
<%- example(`
|
||||
<div class="title-bar">
|
||||
<div class="title-bar-text">A Title Bar using Button Styling Classes</div>
|
||||
<div class="title-bar-controls">
|
||||
<button aria-label="Any Text" class="minimize"></button>
|
||||
<button aria-label="Any Text" class="maximize"></button>
|
||||
<button aria-label="Any Text" class="close"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div class="title-bar">
|
||||
<div class="title-bar-text">A Maximized Title Bar using Button Styling Classes</div>
|
||||
<div class="title-bar-controls">
|
||||
<button aria-label="Any Text" class="minimize"></button>
|
||||
<button aria-label="Any Text" class="restore"></button>
|
||||
<button aria-label="Any Text" class="close"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div class="title-bar">
|
||||
<div class="title-bar-text">A Helpful Bar using Button Styling Classes</div>
|
||||
<div class="title-bar-controls">
|
||||
<button aria-label="Any Text" class="help"></button>
|
||||
<button aria-label="Any Text" class="close"></button>
|
||||
</div>
|
||||
</div>
|
||||
`) %>
|
||||
|
||||
<p>
|
||||
Maximize buttons can be disabled, useful when making a window appear as if it cannot be maximized.
|
||||
</p>
|
||||
|
||||
<%- example(`
|
||||
<div class="title-bar">
|
||||
<div class="title-bar-text">A Title Bar with Maximize disabled</div>
|
||||
<div class="title-bar-controls">
|
||||
<button aria-label="Minimize"></button>
|
||||
<button aria-label="Maximize" disabled></button>
|
||||
<button aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
`) %>
|
||||
|
||||
<p>
|
||||
You can make a title bar "inactive" by adding <code>inactive</code> class,
|
||||
useful when making more than one window.
|
||||
@@ -878,7 +920,6 @@
|
||||
</div>
|
||||
</section>
|
||||
<section class="component">
|
||||
|
||||
<h3 id="table-view">TableView</h3>
|
||||
<div>
|
||||
<p>
|
||||
@@ -957,14 +998,50 @@
|
||||
<script>
|
||||
document.querySelectorAll('table.interactive').forEach(element => {
|
||||
element.addEventListener('click', (event) => {
|
||||
const row = event.path.find(element => element.tagName === 'TR' && element.parentElement.tagName === 'TBODY');
|
||||
if (row) {
|
||||
row.classList.toggle('highlighted');
|
||||
const highlightedClass = 'highlighted';
|
||||
const isRow = element => element.tagName === 'TR' && element.parentElement.tagName === 'TBODY';
|
||||
const newlySelectedRow = event.composedPath().find(isRow);
|
||||
const previouslySelectedRow = Array.from(newlySelectedRow.parentElement.children).filter(isRow).find(element => element.classList.contains(highlightedClass));
|
||||
if(previouslySelectedRow){
|
||||
previouslySelectedRow.classList.toggle(highlightedClass);
|
||||
}
|
||||
|
||||
if (newlySelectedRow) {
|
||||
newlySelectedRow.classList.toggle(highlightedClass);
|
||||
}
|
||||
})
|
||||
});
|
||||
</script>
|
||||
`) %>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="component">
|
||||
<h3 id="progress-indicator">Progress Indicator</h3>
|
||||
<div>
|
||||
<blockquote>
|
||||
You can use a <em>progress indicator</em>, also known as a <em>progress bar control</em>, to show the percentage of completion of a lengthy operation.
|
||||
|
||||
<footer>
|
||||
— Microsoft Windows User Experience p. 189
|
||||
</footer>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
There are two types of progress bars: solid and segmented. The solid version is the default. To declare a segmented bar, you should use the <code>segmented</code> class.
|
||||
</p>
|
||||
|
||||
<%- example(`
|
||||
<div class="progress-indicator">
|
||||
<span class="progress-indicator-bar" style="width: 40%;" />
|
||||
</div>
|
||||
`) %>
|
||||
|
||||
<%- example(`
|
||||
<div class="progress-indicator segmented">
|
||||
<span class="progress-indicator-bar" style="width: 40%;" />
|
||||
</div>
|
||||
`) %>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
Reference in New Issue
Block a user