0.1.1-alpha.306 • Published 9 days ago

@gemeente-denhaag/modal v0.1.1-alpha.306

Weekly downloads
-
License
EUPL-1.2
Repository
github
Last release
9 days ago

Modal

Modals are overlays that prevent users from interacting with the rest of the application until a specific action is taken.

When to use

Use a modal to request information that is preventing the system from continuing a user-initiated process. It can also be used to notify the user of urgent information concerning their current work. Modal dialogs are commonly used to report system errors or convey a consequence of a user’s action. Finally, it can be used to confirm user decisions. Clearly describe the action being confirmed and explain any potential consequences that it may cause. Both the title and the button should reflect the action that will occur.

Alternatives and related components

  • Use an accordion to present large amounts of additional information or actions that don’t require confirmation
  • Use a banner to communicate a change or condition that needs the users attention within the context of a page

Anatomy

The modal consists of:

  1. Title: gives users a quick overview of the modal.
  2. Close icon: closes the modal.
  3. Text: contains the information needed to complete the modal’s task. It can include message text and components.
  4. Buttons (optional): button that allows users to perform an action or close the modal.
  5. Overlay: screen overlay that obscures the on-page content.

(Interactive) states

None.

Design properties

Typography

  • Title: TheMix/xl/700
  • Text: TheSans/md/400

Colors

  • Title: text color Blue/3
  • Close icon: svg color Grey/4
  • Text: text color Grey/4
  • Overlay: background-color white

Button

The buttons text only, medium primary and secundary are used.

Structure

  • Title: padding-top and padding-left 32px, margin-bottom 16px
  • Close icon: height and width 24px, padding-right 32px
  • Text: padding-left and padding-right 32px, margin-bottom 48px
  • Buttons: padding-right and padding-bottom 32px, padding space between buttons 16px

Accessibility

technical accessibility requirements

Error alerts in forms

Error alerts

If users submit long or complex forms with errors, use an error alert to summarize what went wrong. Place the alert at the top of the form and move the focus to the banner when the form is submitted. This will allow all users to scroll through the form in a logical order to resolve the issues.

Inline errors

Always include inline error messages for specific form fields so that users know what to do in context while correcting their errors.

Content guidelines

Title

Modal titles should:

  • Use a clear {verb}+{noun} question or statement.

Body content

Body content should be:

  • Actionable: start sentences with imperative verbs when telling an user what actions are available to them (especially something new). Don’t use permissive language like "you can".

  • Structured for users success: always put the most critical information first.

  • Clear: use the verb “need” to help users understand when they’re required to do something.

Primary and secondary actions

Actions should be:

  • Clear and predictable: users should be able to anticipate what will happen when they click a button. Never deceive a user by mislabeling an action.
  • Action-led: actions should always lead with a strong verb that encourages action. To provide enough context to users use the {verb}+{noun} format on actions except in the case of common actions like Save, Close, Cancel, or OK.
  • Scannable: avoid unnecessary words and articles such as the, an, or a.

Best practices

Dos

Use modals when users must complete an action before they can continue with the main workflow. Avoid using modals to display complex forms or large amounts of information.

Modals should:

  • Require that users take an action.
  • Close when users press the X button, the Cancel button, or the ESC key, not when users click or tap the area outside the modal.
  • Be used very sparingly.
  • Be used for important warnings, as a way to prevent or correct critical errors.
  • Be used to request the user to enter information critical to continuing the current process.
  • Notify the user after the action that has been taken.

Don’ts

Modals should:

  • Not be used for nonessential information that is not related to the current user flow.
  • Not have more than two buttons (primary and secondary) at the bottom. This prevents unclear action hierarchy and crowding on mobile screens. Since modals are for focused tasks, they should have focused actions.
  • Not be closable when the users click or tap the area outside the modal.
  • Not include multiple steps.
  • Not cram in too much.
  • Not include important information.
  • Not open suddenly. A modal should always open upon the user doing (or did) something.

Javascript

Import the @gemeente-denhaag/modal/src/modal.js javascript file to you site to allow the modals to work.

See the example below:

import ModalScripts from "@gemeente-denhaag/modal/src/modal";
window.addEventListener("DOMContentLoaded", () => new ModalScripts());

References

Figma Design http://www.uxforthemasses.com/overlays/ https://www.nngroup.com/articles/modal-nonmodal-dialog/

0.1.1-alpha.306

9 days ago

0.1.1-alpha.305

16 days ago

0.1.1-alpha.304

16 days ago

0.1.1-alpha.303

22 days ago

0.1.1-alpha.302

29 days ago

0.1.1-alpha.301

2 months ago

0.1.1-alpha.300

2 months ago

0.1.1-alpha.299

2 months ago

0.1.1-alpha.298

2 months ago

0.1.1-alpha.297

2 months ago

0.1.1-alpha.296

2 months ago

0.1.1-alpha.295

2 months ago

0.1.1-alpha.294

2 months ago

0.1.1-alpha.293

3 months ago

0.1.1-alpha.292

3 months ago

0.1.1-alpha.291

3 months ago

0.1.1-alpha.290

3 months ago

0.1.1-alpha.289

3 months ago

0.1.1-alpha.288

3 months ago

0.1.1-alpha.287

4 months ago

0.1.1-alpha.286

4 months ago

0.1.1-alpha.284

4 months ago

0.1.1-alpha.283

4 months ago

0.1.1-alpha.285

4 months ago

0.1.1-alpha.282

4 months ago

0.1.1-alpha.281

4 months ago

0.1.1-alpha.280

4 months ago

0.1.1-alpha.279

4 months ago

0.1.1-alpha.278

5 months ago

0.1.1-alpha.277

5 months ago

0.1.1-alpha.262

8 months ago

0.1.1-alpha.261

8 months ago

0.1.1-alpha.260

8 months ago

0.1.1-alpha.269

6 months ago

0.1.1-alpha.268

6 months ago

0.1.1-alpha.267

7 months ago

0.1.1-alpha.266

7 months ago

0.1.1-alpha.265

7 months ago

0.1.1-alpha.264

7 months ago

0.1.1-alpha.263

7 months ago

0.1.1-alpha.273

6 months ago

0.1.1-alpha.272

6 months ago

0.1.1-alpha.271

6 months ago

0.1.1-alpha.270

6 months ago

0.1.1-alpha.276

6 months ago

0.1.1-alpha.275

6 months ago

0.1.1-alpha.274

6 months ago

0.1.1-alpha.240

9 months ago

0.1.1-alpha.248

8 months ago

0.1.1-alpha.247

8 months ago

0.1.1-alpha.246

8 months ago

0.1.1-alpha.245

8 months ago

0.1.1-alpha.244

8 months ago

0.1.1-alpha.243

8 months ago

0.1.1-alpha.242

8 months ago

0.1.1-alpha.241

8 months ago

0.1.1-alpha.249

8 months ago

0.1.1-alpha.251

8 months ago

0.1.1-alpha.250

8 months ago

0.1.1-alpha.259

8 months ago

0.1.1-alpha.258

8 months ago

0.1.1-alpha.257

8 months ago

0.1.1-alpha.256

8 months ago

0.1.1-alpha.255

8 months ago

0.1.1-alpha.254

8 months ago

0.1.1-alpha.253

8 months ago

0.1.1-alpha.252

8 months ago

0.1.1-alpha.237

10 months ago

0.1.1-alpha.236

10 months ago

0.1.1-alpha.239

10 months ago

0.1.1-alpha.238

10 months ago

0.1.1-alpha.235

11 months ago

0.1.1-alpha.234

11 months ago

0.1.1-alpha.226

1 year ago

0.1.1-alpha.225

1 year ago

0.1.1-alpha.224

1 year ago

0.1.1-alpha.223

1 year ago

0.1.1-alpha.222

1 year ago

0.1.1-alpha.221

1 year ago

0.1.1-alpha.220

1 year ago

0.1.1-alpha.229

1 year ago

0.1.1-alpha.228

1 year ago

0.1.1-alpha.227

1 year ago

0.1.1-alpha.233

12 months ago

0.1.1-alpha.232

12 months ago

0.1.1-alpha.231

1 year ago

0.1.1-alpha.230

1 year ago

0.1.1-alpha.215

1 year ago

0.1.1-alpha.214

1 year ago

0.1.1-alpha.213

2 years ago

0.1.1-alpha.212

2 years ago

0.1.1-alpha.211

2 years ago

0.1.1-alpha.219

1 year ago

0.1.1-alpha.218

1 year ago

0.1.1-alpha.217

1 year ago

0.1.1-alpha.216

1 year ago

0.1.1-alpha.204

2 years ago

0.1.1-alpha.209

2 years ago

0.1.1-alpha.208

2 years ago

0.1.1-alpha.207

2 years ago

0.1.1-alpha.206

2 years ago

0.1.1-alpha.205

2 years ago

0.1.1-alpha.210

2 years ago

0.1.1-alpha.185

2 years ago

0.1.1-alpha.184

2 years ago

0.1.1-alpha.183

2 years ago

0.1.1-alpha.182

2 years ago

0.1.1-alpha.181

2 years ago

0.1.1-alpha.180

2 years ago

0.1.1-alpha.189

2 years ago

0.1.1-alpha.188

2 years ago

0.1.1-alpha.187

2 years ago

0.1.1-alpha.186

2 years ago

0.1.1-alpha.196

2 years ago

0.1.1-alpha.195

2 years ago

0.1.1-alpha.194

2 years ago

0.1.1-alpha.193

2 years ago

0.1.1-alpha.192

2 years ago

0.1.1-alpha.191

2 years ago

0.1.1-alpha.190

2 years ago

0.1.1-alpha.199

2 years ago

0.1.1-alpha.198

2 years ago

0.1.1-alpha.197

2 years ago

0.1.1-alpha.179

2 years ago

0.1.1-alpha.178

2 years ago

0.1.1-alpha.177

2 years ago

0.1.1-alpha.176

2 years ago

0.1.1-alpha.203

2 years ago

0.1.1-alpha.202

2 years ago

0.1.1-alpha.201

2 years ago

0.1.1-alpha.200

2 years ago

0.1.1-alpha.141

2 years ago

0.1.1-alpha.140

2 years ago

0.1.1-alpha.149

2 years ago

0.1.1-alpha.148

2 years ago

0.1.1-alpha.147

2 years ago

0.1.1-alpha.146

2 years ago

0.1.1-alpha.145

2 years ago

0.1.1-alpha.144

2 years ago

0.1.1-alpha.143

2 years ago

0.1.1-alpha.142

2 years ago

0.1.1-alpha.152

2 years ago

0.1.1-alpha.151

2 years ago

0.1.1-alpha.150

2 years ago

0.1.1-alpha.159

2 years ago

0.1.1-alpha.158

2 years ago

0.1.1-alpha.157

2 years ago

0.1.1-alpha.156

2 years ago

0.1.1-alpha.155

2 years ago

0.1.1-alpha.154

2 years ago

0.1.1-alpha.153

2 years ago

0.1.1-alpha.127

2 years ago

0.1.1-alpha.126

2 years ago

0.1.1-alpha.125

2 years ago

0.1.1-alpha.124

2 years ago

0.1.1-alpha.129

2 years ago

0.1.1-alpha.128

2 years ago

0.1.1-alpha.130

2 years ago

0.1.1-alpha.138

2 years ago

0.1.1-alpha.137

2 years ago

0.1.1-alpha.136

2 years ago

0.1.1-alpha.135

2 years ago

0.1.1-alpha.134

2 years ago

0.1.1-alpha.133

2 years ago

0.1.1-alpha.132

2 years ago

0.1.1-alpha.131

2 years ago

0.1.1-alpha.139

2 years ago

0.1.1-alpha.163

2 years ago

0.1.1-alpha.162

2 years ago

0.1.1-alpha.161

2 years ago

0.1.1-alpha.160

2 years ago

0.1.1-alpha.169

2 years ago

0.1.1-alpha.168

2 years ago

0.1.1-alpha.167

2 years ago

0.1.1-alpha.166

2 years ago

0.1.1-alpha.165

2 years ago

0.1.1-alpha.164

2 years ago

0.1.1-alpha.174

2 years ago

0.1.1-alpha.173

2 years ago

0.1.1-alpha.172

2 years ago

0.1.1-alpha.171

2 years ago

0.1.1-alpha.170

2 years ago

0.1.1-alpha.175

2 years ago

0.1.1-alpha.123

2 years ago

0.1.1-alpha.122

2 years ago

0.1.1-alpha.121

2 years ago

0.1.1-alpha.120

2 years ago

0.1.1-alpha.116

2 years ago

0.1.1-alpha.114

2 years ago

0.1.1-alpha.113

2 years ago

0.1.1-alpha.112

2 years ago

0.1.1-alpha.111

2 years ago

0.1.1-alpha.110

2 years ago

0.1.1-alpha.119

2 years ago

0.1.1-alpha.118

2 years ago

0.1.1-alpha.117

2 years ago

0.1.1-alpha.105

2 years ago

0.1.1-alpha.104

2 years ago

0.1.1-alpha.103

2 years ago

0.1.1-alpha.102

2 years ago

0.1.1-alpha.101

2 years ago

0.1.1-alpha.100

2 years ago

0.1.1-alpha.99

2 years ago

0.1.1-alpha.98

2 years ago

0.1.1-alpha.97

2 years ago

0.1.1-alpha.96

2 years ago

0.1.1-alpha.109

2 years ago

0.1.1-alpha.95

2 years ago

0.1.1-alpha.108

2 years ago

0.1.1-alpha.94

2 years ago

0.1.1-alpha.107

2 years ago

0.1.1-alpha.93

2 years ago

0.1.1-alpha.106

2 years ago

0.1.1-alpha.92

2 years ago

0.1.1-alpha.91

2 years ago

0.1.1-alpha.90

2 years ago

0.1.1-alpha.88

2 years ago

0.1.1-alpha.87

2 years ago

0.1.1-alpha.86

2 years ago

0.1.1-alpha.85

2 years ago

0.1.1-alpha.84

2 years ago

0.1.1-alpha.83

2 years ago

0.1.1-alpha.82

2 years ago

0.1.1-alpha.81

2 years ago

0.1.1-alpha.89

2 years ago

0.1.1-alpha.80

2 years ago

0.1.1-alpha.77

2 years ago

0.1.1-alpha.76

2 years ago

0.1.1-alpha.75

2 years ago

0.1.1-alpha.74

2 years ago

0.1.1-alpha.73

2 years ago

0.1.1-alpha.72

2 years ago

0.1.1-alpha.71

2 years ago

0.1.1-alpha.70

2 years ago

0.1.1-alpha.79

2 years ago

0.1.1-alpha.78

2 years ago

0.1.1-alpha.69

2 years ago

0.1.1-alpha.68

2 years ago

0.1.1-alpha.67

2 years ago

0.1.1-alpha.55

2 years ago

0.1.1-alpha.54

2 years ago

0.1.1-alpha.53

2 years ago

0.1.1-alpha.52

2 years ago

0.1.1-alpha.51

2 years ago

0.1.1-alpha.50

2 years ago

0.1.1-alpha.59

2 years ago

0.1.1-alpha.58

2 years ago

0.1.1-alpha.57

2 years ago

0.1.1-alpha.56

2 years ago

0.1.1-alpha.49

2 years ago

0.1.1-alpha.48

2 years ago

0.1.1-alpha.47

2 years ago

0.1.1-alpha.46

2 years ago

0.1.1-alpha.45

2 years ago

0.1.1-alpha.66

2 years ago

0.1.1-alpha.65

2 years ago

0.1.1-alpha.64

2 years ago

0.1.1-alpha.63

2 years ago

0.1.1-alpha.62

2 years ago

0.1.1-alpha.61

2 years ago

0.1.1-alpha.60

2 years ago

0.1.1-alpha.44

2 years ago

0.1.1-alpha.43

2 years ago

0.1.1-alpha.42

2 years ago

0.1.1-alpha.41

2 years ago

0.1.1-alpha.40

2 years ago

0.1.1-alpha.39

2 years ago

0.1.1-alpha.38

2 years ago

0.1.1-alpha.37

2 years ago

0.1.1-alpha.36

2 years ago

0.1.1-alpha.35

2 years ago

0.1.1-alpha.34

2 years ago

0.1.1-alpha.33

2 years ago

0.1.1-alpha.32

2 years ago

0.1.1-alpha.31

2 years ago

0.1.1-alpha.30

2 years ago

0.1.1-alpha.29

2 years ago

0.1.1-alpha.28

2 years ago

0.1.1-alpha.27

2 years ago

0.1.1-alpha.26

2 years ago

0.1.1-alpha.25

2 years ago

0.1.1-alpha.24

2 years ago

0.1.1-alpha.23

2 years ago

0.1.1-alpha.22

2 years ago

0.1.1-alpha.21

2 years ago

0.1.1-alpha.20

2 years ago

0.1.1-alpha.19

2 years ago

0.1.1-alpha.18

2 years ago

0.1.1-alpha.17

2 years ago

0.1.1-alpha.16

2 years ago

0.1.1-alpha.15

2 years ago

0.1.1-alpha.14

2 years ago

0.1.1-alpha.13

2 years ago

0.1.1-alpha.12

2 years ago

0.1.1-alpha.11

2 years ago

0.1.1-alpha.10

2 years ago

0.1.1-alpha.9

2 years ago

0.1.1-alpha.5

2 years ago

0.1.1-alpha.4

2 years ago

0.1.1-alpha.3

2 years ago

0.1.1-alpha.2

2 years ago

0.1.1-alpha.1

2 years ago

0.1.1-alpha.0

2 years ago