aboutsummaryrefslogtreecommitdiff
path: root/en/devices/tech/settings/settings-guidelines.md
blob: be948b696bbe98ad829983a7c270b2c6be99e1b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
Project: /_project.yaml
Book: /_book.yaml

<!--
  Copyright 2018 The Android Open Source Project

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

# Android Settings Design Guidelines

This document highlights the principles and guidelines for anyone who is either
designing Android platform settings, GMS core settings (Google Settings) or any
developers designing settings for their Android app.

## Design principles

### Provide a good overview

Users should be able to glance at settings screens and understand all of the
individual settings and their values.

<img src="images/settings-guidelines01.png" width="250" class="screenshot">

**Figure 1:** Settings and their current values are presented on the top-level
screen

### Organize items intuitively

Place frequently used settings at the top of the screen. Limit the number of
settings on one screen. Showing more than 10-15 items can be overwhelming.
Create intuitive menus by moving some settings to a separate screen.

<img src="images/settings-guidelines02.png" width="250" class="screenshot">

**Figure 2:** Common settings are at the top of the screen

### Make settings easy to find

In some cases, it may be helpful to duplicate an individual setting on two
different screens. Different situations can trigger users to change a setting,
so including the setting in multiple places will help users find this item.

For duplicate settings, create a separate screen for the setting and have entry
points from different places.

<table class="columns">
  <tr>
    <td><img src="images/settings-guidelines03.png" width="250" class="screenshot"></td>
    <td><img src="images/settings-guidelines04.png" width="250" class="screenshot"></td>
  </tr>
</table>

**Figure 3 & 4:** "Default notification sound" appears on both the
"Notification" and "Sound" screens

### Use a clear title and status

Make your settings' titles brief and meaningful. Avoid using vague titles like
"General settings." Below the title, show the status to highlight the value of
the setting. Show the specific details instead of just describing the title.

Titles should:

+   Put the most important text of your label first.
+   Rephrase negative words like "don't" or "never" into neutral terms such as
    "block."
+   Use impersonal labels like "Notifications" instead of "Notify me."
    Exception: If referring to the user is necessary for understanding the
    setting, use the second person ("you") rather than the first person ("I").

Titles should avoid:

+   Generic terms, such as set, change, edit, modify, manage, use, select, or
    choose.
+   Repeating words from the section divider or subscreen title.
+   Technical jargon.

## Page types

### Settings list

This is the most common type of screen. It allows multiple settings to be placed
together. Settings lists can be a mix of controls, like switches, menus, and
sliders.

If there are many settings in one category, they can be grouped together. See
[Grouping & dividers](#grouping_dividers) for more details.

<img src="images/settings-guidelines05.png" width="250" class="screenshot">

**Figure 5**: Example of settings list

### List view

The list view is used to show a list of items like apps, accounts, devices, and
more. Controls to filter or sort can be added to the screen.

<img src="images/settings-guidelines06.png" width="250" class="screenshot">

**Figure 6**: Example of List view

### Entity screen

The entity screen is used to present settings of a distinct item like an app,
account, device, Wi-Fi network, etc.

Visually, the entity is shown at the top with an icon, title, and subtitle. All
settings on this screen must be related to this entity.

<img src="images/settings-guidelines07.png" width="250" class="screenshot">

**Figure 7**: Example of Entity screen used in App info

<img src="images/settings-guidelines08.png" width="250" class="screenshot">

**Figure 8**: Example of Entity screen used in Storage

### Master setting

The master setting is best used when an entire feature can be turned on or off,
such as Wi-Fi or Bluetooth. By using a switch at the top of the screen, the user
can easily control this feature. Using the master setting to disable the feature
disables all other related settings.

If a feature needs a longer text description, the master setting can be used as
this screen type allows for longer footer text.

If a setting needs to be duplicated or linked from multiple screens, use the
master setting. Since the master setting is a separate screen, you'll avoid
having multiple switches in different places for the same setting.

<img src="images/settings-guidelines09.png" width="250" class="screenshot">

**Figure 9**: Example of master setting used in App notifications screen;
turning off the master toggle will turn of the entire feature for this app

<img src="images/settings-guidelines10.png" width="250" class="screenshot">

**Figure 10**: Example of master setting used in App notifications screen with
master toggle turned off

### Radio button selection screen

This screen is used when the user needs to make a selection for a setting. Radio
buttons can either be shown in a dialog or on a separate screen. Radio buttons
should not be used alongside sliders, menus, or switches.

A radio button screen can contain an image at the top and footer text at the
bottom. The individual radio buttons can have subtext along with a title.

<img src="images/settings-guidelines11.png" width="250" class="screenshot">

**Figure 11:** Radio buttons should not be used in settings list

<img src="images/settings-guidelines12.png" width="250" class="screenshot">

**Figure 12:** This is how to use radio buttons correctly in settings

## Components

### Header

Starting in Android 8.0, the action toolbar presents search and help along with
other related actions. Overflow menus are discouraged as users may not discover
actions hidden in these menus.

**For toolbars with no screen-specific actions**: Show search and help actions.

<img src="images/settings-guidelines13.png" width="250" class="screenshot">

**Figure 13:** Toolbar with search and help actions

**For toolbars with one action**: Present the action before search.

<img src="images/settings-guidelines14.png" width="250" class="screenshot">

**Figure 14:** Toolbar with one action before the search and help actions

**For toolbars with more than 1 action**: Consider placing the primary action
before search, while putting advanced actions in the overflow menu.

If all actions are advanced or only useful for a small set of users, consider
placing all actions in the overflow menu.

<img src="images/settings-guidelines15.png" width="250" class="screenshot">

**Figure 15:** Toolbar with an overflow menu for actions

### Entity header

The entity header can show a heading only, or heading with subtext (multiple
lines are allowed for the subtext). The action below is optional. You can have a
maximum of two actions.

<img src="images/settings-guidelines16.png" width="250" class="screenshot">

**Figure 16:** Entity header

The icon and heading (App1) part will scroll under the header (App info).

<img src="images/settings-guidelines17.png" width="250" class="screenshot">

**Figure 17:** App info title here is part of the toolbar, while the rest of the
screen will scroll under it

### Menu link

The title is mandatory. You should also show subtext that highlights the status
of the setting. Using an icon is optional.

Try to keep title text concise. If titles are long, they can continue on the
next line instead of being truncated. Don't enable menus or actions on long
press.

Examples:

<img src="images/settings-guidelines18.png" width="250" class="screenshot">

**Figure 18:** Menu link with icon, title, and subtext

<img src="images/settings-guidelines19.png" width="250" class="screenshot">

**Figure 19:** Menu link with title and subtext

<img src="images/settings-guidelines20.png" width="250" class="screenshot">

**Figure 20:** Menu link with title only

**Menu link with icon, title, subtext and a separate hit target on the right**

Other tap targets should use the theme color.

<img src="images/settings-guidelines21.png" width="250" class="screenshot">

**Figure 21:** Example of two-tap target menu

**Menu link with icon, title, subtext and stats/number/alert icon**

Numerical values like percentage and time can be shown on the right along with
the subtext, while a bar graph can be shown below.

Usually, the numerical values are presented on the right so users can easily
glance and compare them.

<img src="images/settings-guidelines22.png" width="250" class="screenshot">

**Figure 22:** Example of menu with icon, title, stat and graph

### Grouping & dividers

If a screen has many settings, they can be grouped and separated by a divider.
Unlike older Android versions, dividers are now used to cluster settings in a
group, rather than separating individual settings.

If the settings in a group are closely related, you can add a group heading. If
you use a group heading, you should always include a divider.

<img src="images/settings-guidelines23.png" width="250" class="screenshot">

**Figure 23:** Settings grouped with dividers

### Switch

**Switch with icon, title, and subtext**

<img src="images/settings-guidelines24.png" width="250" class="screenshot">

**Figure 24:** Switch with icon, title, and subtext

**Switch with title and subtext**

<img src="images/settings-guidelines25.png" width="250" class="screenshot">

**Figure 25:** Switch with title and subtext

**Switch with title only**

Titles can be accompanied by an icon on the left.

<img src="images/settings-guidelines26.png" width="250" class="screenshot">

**Figure 26:** Switch with title only

### List item + switch

You can combine a list item with a switch. Tapping on the left side of the
vertical line acts like a link and takes the user to the next screen. The right
side behaves like a standard switch.

For the list item on the left side, a title is mandatory. The icon and subtext
are optional.

<img src="images/settings-guidelines27.png" width="250" class="screenshot">

**Figure 27:** List item and a switch

### Slider

The icon is optional in the slider.

<img src="images/settings-guidelines28.png" width="250" class="screenshot">

**Figure 28:** Slider

### On-screen button

Positive actions use the theme color while negative actions are gray. Positive
actions may include opening an app, installing an app, adding a new item, etc.
Negative actions include clearing data, uninstalling an app, deleting items,
etc.

<img src="images/settings-guidelines29.png" width="250" class="screenshot">

**Figure 29:** Gray buttons for "Uninstall" and "Force stop"

<img src="images/settings-guidelines30.png" width="250" class="screenshot">

**Figure 30:** Blue button for "Turn on now"

### Progressive disclosure (Advanced)

Settings that are not frequently used should be hidden. Use "Advanced" only when
there are at least 3 items to hide.

Here, the subtext shows the titles of the settings that are hidden. The subtext
should be only one line. Additional text gets truncated with an ellipsis.

<img src="images/settings-guidelines31.png" width="250" class="screenshot">

**Figure 31:** Advanced used on the "Display'" screen

### Drop-down menu

Drop-down menus are available, but ideally you should use a dialog or radio
button selection screen instead. This is recommended to simplify settings, as
there are currently three different patterns for single selection.

If needed, drop-down menus can be used in cases where the setting has simple
options.

<img src="images/settings-guidelines32.png" width="250" class="screenshot">

**Figure 32:** Drop-down menu

### Checkbox

Use switches over checkboxes when possible.

Checkboxes can be used:

+   For negative actions like restricting apps or blocking a service.
+   To avoid having too many switches on the screen.

<img src="images/settings-guidelines33.png" width="250" class="screenshot">

**Figure 33**: Checkboxes are used to reduce the number of switches on this
screen

### Links

Using links in settings is not recommended. Only use links where absolutely
necessary. Links should use an accent color with no underline.

<img src="images/settings-guidelines34.png" width="250" class="screenshot">

**Figure 34:** Link used in settings

### Footer

Footer text can be used to add explanatory content. The footer should always
have a divider at the top. The footer is shown at the bottom of the screen.
Footers can have links, if needed.

<img src="images/settings-guidelines35.png" width="250" class="screenshot">

**Figure 35:** Footer text

## Patterns

### Data

Critical data can be shown in a graph like a bar or pie chart. This data can be
shown in the entity header. Examples include mobile data and storage.

Other less critical data can be presented by using a regular list view.

<img src="images/settings-guidelines36.png" width="250" class="screenshot">

**Figure 36:** Example showing Storage

<img src="images/settings-guidelines37.png" width="250" class="screenshot">

**Figure 37:** Example showing Network

### User education

Some features may need an explanation or user education. You can use an
animation or image along with text. The animation or image should be presented
at the top of the screen, while the footer text can be used to add an
explanation.

<img src="images/settings-guidelines38.png" width="250" class="screenshot">

**Figure 38:** Setting using animation and footer text

### Forms

If the form has one input field, use a normal dialog. This provides an easy way
for users to enter a single input.

However, if the form has several fields, consider using a [full-screen dialog](https://material.io/design/components/dialogs.html#full-screen-dialog).
This provides more screen space to arrange the fields in a clear pattern.

<img src="images/settings-guidelines39.png" width="250" class="screenshot">

**Figure 39:** Form with a normal dialog

### Search results

Search results show the title, subtext (if available), and the breadcrumb
location of the setting.

<img src="images/settings-guidelines40.png" width="250" class="screenshot">

**Figure 40:** Search result