Skip to content

Commit dc605a7

Browse files
committed
Improve styling and respect prefers-reduced-motion
1 parent 8c69aa8 commit dc605a7

File tree

6 files changed

+34
-14
lines changed

6 files changed

+34
-14
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ This applies from version 0.5.0 onwards, as some versions before that have broke
1212
## [Unreleased]
1313

1414
### Added
15+
16+
- Improve styling and respect `prefers-reduced-motion`.
17+
1518
### Changed
1619
### Fixed
1720

src/Components/Button.elm

+13-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ module Components.Button exposing (emptyState, primary, radio, rounded, secondar
33
import Accessibility exposing (Attribute)
44
import Accessibility.Aria
55
import Accessibility.Key
6-
import Extras.HtmlTree exposing (HtmlTree(..))
76
import Html exposing (Html)
87
import Html.Attributes exposing (class)
98

@@ -21,10 +20,17 @@ withAdditionalAttributes attributes additionalAttributes children =
2120
children
2221

2322

24-
primary : List (Attribute msg) -> List (Html msg) -> Html msg
25-
primary =
23+
primary : Bool -> List (Attribute msg) -> List (Html msg) -> Html msg
24+
primary enabled =
2625
withAdditionalAttributes
27-
[ class "inline-flex justify-center py-2 px-4 border border-transparent shadow-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300" ]
26+
[ if enabled then
27+
class "inline-flex justify-center py-2 px-4 border border-transparent shadow-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300"
28+
29+
else
30+
class "inline-flex justify-center py-2 px-4 border border-transparent shadow-sm font-medium rounded-md text-white dark:text-gray-400 bg-indigo-400 dark:bg-indigo-900 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300"
31+
, Html.Attributes.disabled <| not enabled
32+
, Accessibility.Key.tabbable enabled
33+
]
2834

2935

3036
secondary : List (Attribute msg) -> List (Html msg) -> Html msg
@@ -79,7 +85,7 @@ toggle on labelId additionalAttributes children =
7985
(class "flex items-center" :: additionalAttributes)
8086
[ Accessibility.button
8187
[ Html.Attributes.type_ "button"
82-
, class "relative inline-flex shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300"
88+
, class "relative inline-flex shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer motion-reduce:transition-none transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300"
8389
, class <|
8490
if on then
8591
"bg-indigo-600 dark:bg-indigo-400"
@@ -92,7 +98,7 @@ toggle on labelId additionalAttributes children =
9298
]
9399
[ Accessibility.span
94100
[ Accessibility.Aria.hidden True
95-
, class "pointer-events-none inline-block h-5 w-5 rounded-full bg-white dark:bg-gray-700 shadow transform ring-0 transition ease-in-out duration-200"
101+
, class "pointer-events-none inline-block h-5 w-5 rounded-full bg-white dark:bg-gray-700 shadow transform motion-reduce:transform-none ring-0 transition ease-in-out duration-200"
96102
, class <|
97103
if on then
98104
"translate-x-5"
@@ -119,7 +125,7 @@ radio name_ value_ checked_ tabbable additionalAttributes =
119125
name_
120126
value_
121127
checked_
122-
([ class "h-4 w-4 dark:bg-gray-200 text-indigo-600 dark:text-indigo-400 border-gray-300 dark:border-gray-500 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300 "
128+
([ class "h-4 w-4 dark:bg-gray-200 text-indigo-600 dark:text-amber-700 border-gray-300 dark:border-gray-500 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300 "
123129
, Accessibility.Key.tabbable tabbable
124130
]
125131
++ additionalAttributes

src/Components/DropdownMenu.elm

+15-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
module Components.DropdownMenu exposing (Choice, Model, Msg, choice, hidden, id, init, subscriptions, update, view, visible)
1+
module Components.DropdownMenu exposing
2+
( Choice
3+
, Model
4+
, Msg
5+
, choice
6+
, hidden
7+
, id
8+
, init
9+
, subscriptions
10+
, update
11+
, view
12+
, visible
13+
)
214

315
import Accessibility exposing (..)
416
import Accessibility.Aria
@@ -9,7 +21,6 @@ import Browser.Events as Events
921
import Components.Button
1022
import Extras.HtmlAttribute
1123
import Extras.HtmlEvents
12-
import Extras.HtmlTree exposing (HtmlTree(..))
1324
import Html
1425
import Html.Attributes exposing (attribute, class, href)
1526
import Html.Events
@@ -287,10 +298,10 @@ view toParentMsg model body_ choices =
287298
, class "origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white dark:bg-gray-800 ring-1 ring-black dark:ring-gray-600 ring-opacity-5 divide-y divide-gray-100 focus:outline-none"
288299
, class "hidden" |> Extras.HtmlAttribute.showIf (model_.visibility == Invisible)
289300
, if model_.visibility == Visible then
290-
class "transition ease-out duration-100 transform opacity-100 scale-100"
301+
class "transition motion-reduce:transition-none ease-out duration-100 transform motion-reduce:transform-none opacity-100 scale-100"
291302

292303
else
293-
class "transition ease-in duration-75 transform opacity-0 scale-95"
304+
class "transition motion-reduce:transition-none ease-in duration-75 transform motion-reduce:transform-none opacity-0 scale-95"
294305
, Accessibility.Role.menu
295306
, Accessibility.Key.tabbable False
296307
]

src/Pages/CreateOrEdit.elm

+1-1
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ viewCreateFormFooter model showValidationErrors errorMessageWhileSaving glossary
717717
PageMsg.NavigateToListAll { common | loadedGlossaryItems = Ok glossaryItems }
718718
]
719719
[ text "Cancel" ]
720-
, Components.Button.primary
720+
, Components.Button.primary True
721721
[ class "ml-3"
722722
, Html.Events.onClick <| PageMsg.Internal Save
723723
]

src/Pages/EditTitleAndAbout.elm

+1-1
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ viewCreateFormFooter model showValidationErrors errorMessageWhileSaving glossary
476476
PageMsg.NavigateToListAll { common | loadedGlossaryItems = Ok glossaryItems }
477477
]
478478
[ text "Cancel" ]
479-
, Components.Button.primary
479+
, Components.Button.primary True
480480
[ class "ml-3"
481481
, Html.Events.onClick <| PageMsg.Internal Save
482482
]

src/Pages/ListAll.elm

+1-1
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ viewConfirmDeleteModal maybeIndexOfItemToDelete =
742742
]
743743
, div
744744
[ class "mt-5 sm:mt-4 sm:flex sm:flex-row-reverse" ]
745-
[ Components.Button.primary
745+
[ Components.Button.primary True
746746
[ class "w-full bg-red-600 dark:bg-red-400 hover:bg-red-700 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm dark:text-gray-800 "
747747
, Extras.HtmlAttribute.showMaybe
748748
(Html.Events.onClick << PageMsg.Internal << Delete)

0 commit comments

Comments
 (0)