-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfictionalCSSexample.specalt
More file actions
72 lines (60 loc) · 2.09 KB
/
fictionalCSSexample.specalt
File metadata and controls
72 lines (60 loc) · 2.09 KB
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
// A __fictional__ CSS feature `layout-snap` to control
// how elements inside a container align/snap into position.
// We need to decide:
// - does snapping happen automatically (`auto`) or only when explicitly triggered (`manual`)
// - how it behaves when content overflows (`clip` / `scroll`)
// - whether the movement is instant (`discrete`) or animated (`smooth`)
// Decision points ("tweakables"):
// - activation mode: `auto` / `manual`
// - overflow behaviour: `clip` / `scroll`
// - animation mode: `discrete` / `smooth`
// Dependencies between tweakables: see slides 7 and 8 of https://docs.google.com/presentation/d/1u2EgJdNL_-63zsw-HY4wClHykNMHs5fkewdtj6HNGSQ/edit?usp=sharing
laboratory {
title "CSS-related fictional example"
description "description text"
author "author"
version "1"
}
issue implementationComplexity {
summary "implementation complexity"
description "Automatic layout adjustment increases implementation complexity."
}
issue authorConfusion {
summary "author confusion"
description "Interactions between automatic snapping and overflow behaviour may be harder for authors to predict."
}
issue motionConcern {
summary "motion concern"
description "Smooth automatic movement may be undesirable for some users and harder to reason about."
}
issue performanceCost {
summary "performance cost"
description "Continuous or animated layout adjustment may have a runtime cost."
}
tweakable activationMode {
expression "activation mode"
default value "manual" {}
value "auto" {
raise implementationComplexity
}
}
tweakable overflowBehaviour {
expression "overflow behaviour"
default value "clip" {}
value "scroll" {
raise authorConfusion when activationMode is "auto"
}
}
tweakable animationMode {
expression "animation mode"
default value "discrete" {}
value "smooth" {
raise motionConcern
raise performanceCost when activationMode is "auto"
raise authorConfusion when overflowBehaviour is "scroll"
}
disabled {
message "Animation mode is only relevant when layout-snap is automatic."
when activationMode is "manual"
}
}