@adobe/coral-spectrum
Version:
Coral Spectrum is a JavaScript library of Web Components following Spectrum design patterns.
155 lines (136 loc) • 6.66 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Coral.Radio</title>
<script>document.addEventListener('click', function(event) {if (event.target.nodeName === 'A' || event.matchedTarget && event.matchedTarget.nodeName === 'A') {event.preventDefault();}});</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
<style>.hljs{background:#fff;font-size:12px;border-radius:4px;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;}</style>
<script>
document.addEventListener('DOMContentLoaded', function() {
const markup = document.body.querySelectorAll('.markup');
for (var i = 0; i < markup.length; i++) {
const code = markup[i].innerHTML;
const id = 'markup-code-' + i;
markup[i].insertAdjacentHTML('afterend',
'<div style="margin:10px 0">' +
'<a onclick="this.nextElementSibling.hidden = !this.nextElementSibling.hidden" class="coral-Link" href="#">Toggle markup</a>' +
'<pre hidden>' +
'<code id="'+ id +'" class="html">' +
'</code>' +
'</pre>' +
'</div>');
document.getElementById(id).textContent = code;
}
window.hljs.initHighlightingOnLoad();
});
</script>
<link rel="stylesheet" href="../css/coral.css">
<script>
document.addEventListener('DOMContentLoaded', function() {
const script = document.createElement('script');
script.src = '../js/coral.js';
script.dataset.coralIcons = '../resources/';
document.head.appendChild(script);
});
</script>
</head>
<body class="coral--lightest">
<main class="u-coral-margin">
<div style="position:absolute;top:16px;right:16px;">
<strong style="padding-right:8px"><span class="u-coral-hiddenS">Theme:</span></strong>
<a href="#" class="coral-Link theme" onclick="document.body.className='coral--light'">Light</a> |
<a href="#" class="coral-Link theme" onclick="document.body.className='coral--lightest'">Lightest</a> |
<a href="#" class="coral-Link theme" onclick="document.body.className='coral--dark'">Dark</a> |
<a href="#" class="coral-Link theme" onclick="document.body.className='coral--darkest'">Darkest</a>
<strong style="padding:0 8px 0 16px"><span class="u-coral-hiddenS">Scale:</span></strong>
<a href="#" class="coral-Link scale" onclick="document.body.classList.remove('coral--large')">Medium</a> |
<a href="#" class="coral-Link scale" onclick="document.body.classList.add('coral--large')">Large</a>
</div>
<h1 class="coral-Heading--XXL">Radio</h1>
<h2 class="coral-Heading--M">Usage notes</h2>
<hr class="coral-Divider--L">
<p class="coral-Body--M u-coral-padding-vertical">
Radio buttons allow users to select a single option from a list of mutually exclusive options. All possible options are exposed up front for users to compare.
</p>
<h2 class="coral--Heading--S">Default</h2>
<div class="markup">
<coral-radio name="radio1"></coral-radio>
</div>
<h2 class="coral--Heading--S">Checked</h2>
<div class="markup">
<coral-radio name="radio3" checked>Checked radio</coral-radio>
</div>
<h2 class="coral--Heading--S">Disabled</h2>
<div class="markup">
<coral-radio name="radio5" disabled>Disabled radio</coral-radio>
</div>
<h2 class="coral--Heading--S">Checked and disabled</h2>
<div class="markup">
<coral-radio name="radio6" checked disabled>Checked and disabled</coral-radio>
</div>
<h2 class="coral--Heading--S">With the same name</h2>
<div class="markup">
<coral-radio name="radio7">Checked and disabled</coral-radio>
<coral-radio name="radio8">Checked and disabled</coral-radio>
</div>
<h2 class="coral--Heading--S">Labelled</h2>
<div class="markup">
<coral-radio>Check</coral-radio>
<coral-radio labelled="Check"></coral-radio>
</div>
<h2 class="coral--Heading--S">From JavaScript</h2>
<div class="markup">
<div id="from-javascript"></div>
<script>
var radioFromJS = document.createElement('coral-radio');
radioFromJS.textContent = 'Add Adobe Stock. Get one month free.*';
radioFromJS.style.width = '149px';
document.getElementById('from-javascript').appendChild(radioFromJS);
</script>
</div>
<h2 class="coral--Heading--S">Getting values from Named Radios</h2>
<fieldset class="coral-Form-fieldset" id="container">
<legend class="coral-Form-fieldset-legend">Greetings</legend>
</fieldset>
<label for="output">Result:</label>
<output id="output">...</output>
<script type="text/javascript">
window.addEventListener('load', function() {
var helloRadio = new Coral.Radio();
helloRadio.label.innerHTML = 'Hello From JavaScript';
helloRadio.name = 'jsExample';
helloRadio.value = 'hello';
var goodbyeRadio = new Coral.Radio();
goodbyeRadio.label.innerHTML = 'Bye From JavaScript';
goodbyeRadio.name = 'jsExample';
goodbyeRadio.value = 'bye';
var salutRadio = new Coral.Radio();
salutRadio.label.innerHTML = 'Salut! From JavaScript';
salutRadio.name = 'jsExample';
salutRadio.value = 'salut';
var container = document.querySelector('#container');
container.appendChild(helloRadio);
container.appendChild(goodbyeRadio);
container.appendChild(salutRadio);
container.addEventListener('change', function(event) {
document.querySelector('#output').textContent = event.target.value;
});
window.addChecked = function(event) {
event.preventDefault();
var checkedRadio = new Coral.Radio();
checkedRadio.label.innerHTML = 'Checked';
checkedRadio.name = 'jsExample';
checkedRadio.value = Coral.commons.getUID();
checkedRadio.checked = true;
container.appendChild(checkedRadio);
};
});
</script>
<br/>
<a href="#" class="coral-Link" onclick="addChecked(event);">Add checked radio</a>
</main>
</body>
</html>