|
1 |
| -<div class="text-white" style="<%= header_styles() %>"> |
2 |
| - <header class="mx-auto max-w-4xl"> |
| 1 | +<header class="text-white" style="<%= header_styles() %>"> |
| 2 | + <div class="mx-auto max-w-4xl"> |
3 | 3 | <h1 class="pt-8 row space-x-4 text-4xl text-center font-bold leading-tight text-shadow">
|
4 | 4 | <div class="row">
|
5 | 5 | <span class="mr-2 text-4xl">💁🏼♀️🥇</span>
|
6 | 6 | </div>
|
7 |
| - <span><%= "Accessibility-First Development" %></span> |
| 7 | + <span><%= "Accessibility-First" %></span> |
8 | 8 | </h1>
|
9 |
| - <nav class="pt-6 pb-4"> |
10 |
| - <ul class="list-none row font-bold" style="--link-padding: 0.75em"> |
11 |
| - <li><%= link("Landmarks", to: '/accessibility-first/widgets-cheatsheet') %> |
12 |
| - <li><%= link("Widgets", to: '/accessibility-first/widgets-cheatsheet') %> |
13 |
| - <li><%= link("Properties", to: '/accessibility-first/properties-cheatsheet') %> |
14 |
| - <li><%= link("Forms", to: '/accessibility-first/properties-cheatsheet') %> |
15 |
| - <li><%= link("Keyboard Navigation", to: '/accessibility-first/properties-cheatsheet') %> |
16 |
| - </ul> |
17 |
| - </nav> |
18 |
| - </header> |
19 |
| -</div> |
20 |
| - |
21 |
| -<header class="text-white" style="background: <%= header_background() %>;"> |
22 |
| - <div class="container px-6 pt-12 pb-12"> |
23 |
| - <h1 class="mx-auto max-w-4xl text-5xl text-center font-bold leading-tight text-shadow"> |
24 |
| - <%= "🥇 Accessibility-First Development" %> |
25 |
| - </h1> |
26 |
| - <p class="my-8 mx-auto max-w-3xl text-4xl text-center leading-snug italic text-shadow"> |
27 |
| - <%#= "Write simpler, more robust tests using accessibility affordances." %> |
28 |
| - <%= "Write simpler, more robust tests via user-friendly accessibility affordances." %> |
29 |
| - </p> |
30 | 9 | <%= render @view_module, "_nav.html" %>
|
31 | 10 | </div>
|
32 | 11 | </header>
|
33 | 12 |
|
34 |
| -<div class="bg-white"> |
35 |
| - <%= section "Topics", class: "container pt-8 pb-16 text-2xl" do %> |
36 |
| - <%= topic_article(title: "Landmarks", link: Routes.accessibility_first_path(@conn, :show, "landmarks")) do %> |
37 |
| - <ul> |
38 |
| - <li><%= link("Orienting web visitors using landmarks", to: "#") %> |
39 |
| - </ul> |
40 |
| - <p>Define what your elements are using a clear standard. Let your users quickly jump around the key parts of your page (better UX), and leverage those in your tests (better DX).</p> |
41 |
| - <% end %> |
42 |
| - <%= topic_article(title: "Widgets, Attributes & States", link: Routes.accessibility_first_path(@conn, :show, "properties-cheatsheet")) do %> |
43 |
| - <p>Learn the standards for interactive widgets usable by touch, mouse, and keyboard. Let users know which page is current or which sub-control is selected.</p> |
44 |
| - <% end %> |
45 |
| - <%= topic_article(title: "BDD with Jest & React Testing Library") do %> |
46 |
| - <p>Learn a consistent pattern to write your component tests in Jest. Use @testing-library to find elements in a realistic way. Describe your contexts and scenarios with plain language.</p> |
47 |
| - <% end %> |
48 |
| - <%= topic_article(title: "Atomic Design") do %> |
49 |
| - <p>Organize your components into distict folders. Break them up at the right level, then compose them. Test them differently. Incorporate ARIA roles into the atomic design approach.</p> |
50 |
| - <% end %> |
51 |
| - <% end %> |
| 13 | +<article> |
| 14 | + <div class="text-white bg-gray-900"> |
| 15 | + <div class="content max-w-4xl mx-auto py-8 text-xl"> |
| 16 | + <%= render(@view_module, @article <> ".html", conn: @conn) %> |
| 17 | + </div> |
| 18 | + </div> |
| 19 | +</article> |
| 20 | + |
| 21 | +<div class="bg-white" hidden> |
| 22 | + <section class="container pt-8 pb-16 text-2xl"> |
| 23 | + <article class="mb-8"> |
| 24 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Atomic design</h2> |
| 25 | + <p> |
| 26 | + Learn how to name components. Apply the single responsibility principle. Find the indivisible component units, and compose them together into larger molecules. |
| 27 | + </p> |
| 28 | + </article> |
| 29 | + <article class="mb-8"> |
| 30 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Styling approaches</h2> |
| 31 | + <p> |
| 32 | + Extract common styles. Define a style guide. How do you keep styles consistent? |
| 33 | + </p> |
| 34 | + </article> |
| 35 | + <article class="mb-8"> |
| 36 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Reusability trade-offs</h2> |
| 37 | + <p> |
| 38 | + What sort of components should be resuable? How granular should you go? |
| 39 | + </p> |
| 40 | + </article> |
| 41 | + <article class="mb-8"> |
| 42 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Pattern libraries</h2> |
| 43 | + <p> |
| 44 | + When do you need a pattern library? Who are they for? How should you manage them? |
| 45 | + </p> |
| 46 | + </article> |
| 47 | + <article class="mb-8"> |
| 48 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Testing components</h2> |
| 49 | + <p> |
| 50 | + Unit test components. Test the behaviours that matter first. Use type-safety to remove impossible states. |
| 51 | + </p> |
| 52 | + </article> |
| 53 | + <article class="mb-8"> |
| 54 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Testing data flow</h2> |
| 55 | + <p> |
| 56 | + Test your data flow in isolation. Use test-driven design. Mock APIs and other sources. |
| 57 | + </p> |
| 58 | + </article> |
| 59 | + <article class="mb-8"> |
| 60 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Composable component patterns</h2> |
| 61 | + <p> |
| 62 | + Components are <em>really</em> composable. Can we reduce boilerplate? What useful component utilities can we make? |
| 63 | + </p> |
| 64 | + </article> |
| 65 | + <article class="mb-8"> |
| 66 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Handling errors</h2> |
| 67 | + <p> |
| 68 | + Handle errors from publishers. What and when should you show users? |
| 69 | + </p> |
| 70 | + </article> |
| 71 | + <article class="mb-8"> |
| 72 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Caching data</h2> |
| 73 | + <p> |
| 74 | + Learn how to name components. Apply the single responsibility principle. Find the atomic units, and compose them together. |
| 75 | + </p> |
| 76 | + </article> |
| 77 | + <article class="mb-8"> |
| 78 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Improving performance in the right areas</h2> |
| 79 | + <p> |
| 80 | + Learn when you should focus on performance. Measure to be informed. Apply optimization techniques. |
| 81 | + </p> |
| 82 | + </article> |
| 83 | + <article class="mb-8"> |
| 84 | + <h2 class="mb-2 text-4xl leading-normal text-teal-800">Automating repetitive tasks</h2> |
| 85 | + <p> |
| 86 | + Produce screenshots across many devices. |
| 87 | + </p> |
| 88 | + </article> |
| 89 | + </section> |
52 | 90 | </div>
|
0 commit comments