x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<nav data-view-component="true" class="menu"> <h2 data-view-component="true" class="menu-heading"> Heading </h2> <a href="#url" aria-current="page" data-view-component="true" class="menu-item"> Item 1 </a> <a href="#url" data-view-component="true" class="menu-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> With Icon </a> <a href="#url" data-view-component="true" class="menu-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> With Icon and Counter <span title="25" data-view-component="true" class="Counter">25</span> </a></nav>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%= render(Primer::Alpha::Menu.new) do |component| %> <% component.with_heading(tag: :h2) do %> Heading <% end %> <% component.with_item(selected: true, href: "#url") do %> Item 1 <% end %> <% component.with_item(href: "#url") do %> <%= render(Primer::Beta::Octicon.new("check")) %> With Icon <% end %> <% component.with_item(href: "#url") do %> <%= render(Primer::Beta::Octicon.new("check")) %> With Icon and Counter <%= render(Primer::Beta::Counter.new(count: 25)) %> <% end %><% end %>
No notes provided.
No params configured.
app/components/primer/alpha/menu.css
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
/* menu *//* A menu on the side of a page, defaults to left side. e.g. github.com/about */.menu { /* stylelint-disable-next-line primer/spacing */ margin-bottom: var(--stack-gap-normal); list-style: none; background-color: var(--bgColor-default); border: var(--borderWidth-thin) solid var(--borderColor-default); border-radius: var(--borderRadius-medium);}.menu-item { position: relative; display: block; /* stylelint-disable-next-line primer/spacing */ padding: var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious); color: var(--fgColor-default); border-bottom: var(--borderWidth-thin) solid var(--borderColor-default);}.menu-item:first-child { border-top: 0; border-top-left-radius: var(--borderRadius-medium); border-top-right-radius: var(--borderRadius-medium); }.menu-item:first-child::before { border-top-left-radius: var(--borderRadius-medium); }.menu-item:last-child { border-bottom: 0; border-bottom-right-radius: var(--borderRadius-medium); border-bottom-left-radius: var(--borderRadius-medium); }.menu-item:last-child::before { border-bottom-left-radius: var(--borderRadius-medium); }.menu-item:hover { -webkit-text-decoration: none; text-decoration: none; background-color: var(--bgColor-neutral-muted); }.menu-item:active { background-color: var(--bgColor-muted); }.menu-item.selected,.menu-item[aria-selected='true'],.menu-item[aria-current]:not([aria-current='false']) { cursor: default; background-color: var(--menu-bgColor-active); }:is(.menu-item.selected,.menu-item[aria-selected='true'],.menu-item[aria-current]:not([aria-current='false']))::before { position: absolute; top: 0; bottom: 0; left: 0; width: 2px; content: ''; /* stylelint-disable-next-line primer/colors */ background-color: var(--underlineNav-borderColor-active); }.menu-item .octicon { width: 16px; /* stylelint-disable-next-line primer/spacing */ margin-right: var(--control-medium-gap); color: var(--fgColor-muted); text-align: center; }.menu-item .Counter { float: right; /* stylelint-disable-next-line primer/spacing */ margin-left: var(--control-small-gap); }.menu-item .menu-warning { float: right; color: var(--fgColor-attention); }.menu-item .avatar { float: left; /* stylelint-disable-next-line primer/spacing */ margin-right: var(--control-small-gap); }.menu-item.alert .Counter { color: var(--fgColor-danger); }.menu-heading { display: block; /* stylelint-disable-next-line primer/spacing */ padding: var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious); margin-top: 0; margin-bottom: 0; font-size: inherit; font-weight: var(--base-text-weight-semibold); color: var(--fgColor-default); border-bottom: var(--borderWidth-thin) solid var(--borderColor-default);}.menu-heading:hover { -webkit-text-decoration: none; text-decoration: none; }.menu-heading:first-child { border-top-left-radius: var(--borderRadius-medium); border-top-right-radius: var(--borderRadius-medium); }.menu-heading:last-child { border-bottom: 0; border-bottom-right-radius: var(--borderRadius-medium); border-bottom-left-radius: var(--borderRadius-medium); }