Skip to content

Commit da569c4

Browse files
authored
Switch Group (#189)
* init * nits and made interactive * adds build and readme entries
1 parent ce278c3 commit da569c4

12 files changed

+2956
-0
lines changed

.github/workflows/main.yml

+3
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ jobs:
9191

9292
- name: Build Glitch
9393
run: cd glitch && npm install && npm run build
94+
95+
- name: Build Switch Group
96+
run: cd switch-group && npm install && npm run build
9497

9598
- name: Deploy to Firebase
9699
uses: w9jds/firebase-action@master

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,7 @@ and expand the diversity of our skills.**
109109
[`YouTube`](https://youtu.be/eamAHF71ZN4)
110110
27. Glitch
111111
[`Demo`](https://gui-challenges.web.app/glitch/dist/)
112+
[`YouTube`](https://www.youtube.com/watch?v=MR7dClW6iBg)
113+
27. Switch Group
114+
[`Demo`](https://gui-challenges.web.app/switch-group/dist/)
112115
[`YouTube`](#)(coming soon!)

switch-group/favicon.ico

15 KB
Binary file not shown.

switch-group/favicon.svg

+28
Loading

switch-group/index.html

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<!doctype html>
2+
<html lang="en" dir="ltr">
3+
<head>
4+
<title>Switch Group | GUI Challenges</title>
5+
<meta charset="utf-8">
6+
7+
<meta name="viewport" content="width=device-width, initial-scale=1">
8+
<meta name="mobile-web-app-capable" content="yes">
9+
<meta name="theme-color" content="Canvas">
10+
<meta name="description" content="🙂">
11+
<link rel="icon" href="/favicon.ico" sizes="any">
12+
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
13+
<link rel="stylesheet" href="/style.css">
14+
<script type="module" src="/index.js"></script>
15+
</head>
16+
<body>
17+
18+
<fieldset class="switch-group" id="demo">
19+
<legend>Text Alignment</legend>
20+
21+
<div class="group-switch">
22+
<input checked type="radio" name="text-alignment" id="text-left" value="left">
23+
<label for="text-left">Text align left</label>
24+
<tool-tip inert role="tooltip">Left align</tool-tip>
25+
<svg viewBox="0 0 24 24" aria-hidden="true">
26+
<path d="M14 15H4c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1zm0-8H4c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1zM4 13h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0 8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z"/>
27+
</svg>
28+
</div>
29+
30+
<div class="group-switch">
31+
<input type="radio" name="text-alignment" id="text-center" value="center">
32+
<label for="text-center">Text align center</label>
33+
<tool-tip inert role="tooltip">Center align</tool-tip>
34+
<svg viewBox="0 0 24 24" aria-hidden="true">
35+
<path d="M7 16c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zm-3 5h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm3-5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z"/>
36+
</svg>
37+
</div>
38+
39+
<div class="group-switch">
40+
<input type="radio" name="text-alignment" id="text-right" value="right">
41+
<label for="text-right">Text align right</label>
42+
<tool-tip inert role="tooltip">Right align</tool-tip>
43+
<svg viewBox="0 0 24 24" aria-hidden="true">
44+
<path d="M4 21h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm6-4h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zm-6-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm6-4h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z"/>
45+
</svg>
46+
</div>
47+
48+
<div class="group-switch">
49+
<input type="radio" name="text-alignment" id="text-justify" value="justify">
50+
<label for="text-justify">Text align justify</label>
51+
<tool-tip inert role="tooltip">Justify</tool-tip>
52+
<svg viewBox="0 0 24 24" aria-hidden="true">
53+
<path d="M4 21h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z"/>
54+
</svg>
55+
</div>
56+
57+
</fieldset>
58+
59+
<p id="lorem">Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda totam, non. Nemo expedita soluta vero magni? Nesciunt temporibus nulla tempora excepturi quos cum illum blanditiis inventore exercitationem veritatis corrupti, voluptates.</p>
60+
61+
<a href="https://github.com/argyleink/gui-challenges" class="github-corner" aria-label="View source on GitHub" style="position: absolute; top: 0; border: 0; right: 0;">
62+
<svg width="80" height="80" viewBox="0 0 250 250" aria-hidden="true">
63+
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" stroke="none" fill="var(--gray-5)"></path>
64+
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="var(--_surface-document)" stroke="none" style="transform-origin: 130px 106px;" class="octo-arm"></path>
65+
<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="var(--_surface-document)" stroke="none" class="octo-body"></path>
66+
</svg>
67+
</a>
68+
69+
</body>
70+
</html>

switch-group/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
demo.oninput = e =>
2+
lorem.style.textAlign = e.target.value

0 commit comments

Comments
 (0)