maverick-wave 5.21.0 → 5.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "maverick-wave",
3
- "version": "5.21.0",
3
+ "version": "5.23.0",
4
4
  "config": {
5
- "version_short": "5.21"
5
+ "version_short": "5.23"
6
6
  },
7
7
  "description": "A lightweight, modern CSS framework for building responsive websites with elegance and speed.",
8
8
  "main": "src/js/main.js",
@@ -15,6 +15,7 @@
15
15
  "start": "gulp",
16
16
  "build": "gulp clean && gulp build",
17
17
  "verify": "node scripts/verify.js",
18
+ "verify:release": "node scripts/verify.js --release",
18
19
  "prepack": "gulp release"
19
20
  },
20
21
  "repository": {
package/release.sh CHANGED
@@ -11,6 +11,12 @@ echo "## point the README CDN snippets at this version"
11
11
  sed -i '' -E "s|maverick-wave@[0-9]+\.[0-9]+\.[0-9]+|maverick-wave@${VERSION}|g" README.md
12
12
  echo "## make a new release"
13
13
  npm run build && npm run prepack
14
+ echo "## verify the release state - bundles and CDN pin, which only exist here"
15
+ if ! npm run verify:release; then
16
+ echo "## verify failed - nothing pushed, nothing published"
17
+ git checkout main
18
+ exit 1
19
+ fi
14
20
  echo "## add all changes and push it"
15
21
  git add --all
16
22
  git commit -m "release: ${VERSION}"
package/scripts/verify.js CHANGED
@@ -6,14 +6,20 @@
6
6
  * 1. every var(--mw-*) has a definition
7
7
  * 2. every --mw-* definition is used somewhere
8
8
  * 3. every mw-* class in the markup exists in the built CSS
9
- * 4. the committed root release files match a fresh build
10
- * 5. the CDN version pinned in the docs matches package.json
9
+ * 4. the committed root release files match a fresh build (--release)
10
+ * 5. the CDN version pinned in the docs matches package.json (--release)
11
11
  * 6. no `animation:` shorthand in a file that uses a scroll timeline
12
12
  *
13
+ * 4 and 5 describe the release state, which release.sh produces on the release
14
+ * branch - on main they are stale by construction and would fail every CI run.
15
+ * They run under `--release`, which release.sh calls after prepack.
16
+ *
13
17
  * Sources are scanned rather than hard-coded so a new partial is covered
14
18
  * automatically. Exits 1 on any error; warnings never fail the build.
15
19
  */
16
20
 
21
+ const RELEASE = process.argv.includes('--release');
22
+
17
23
  const fs = require('fs');
18
24
  const path = require('path');
19
25
 
@@ -133,9 +139,11 @@ for (const [c, where] of [...classesInMarkup].sort()) {
133
139
  // --- 4: root release files -------------------------------------------------
134
140
  // These are committed and consumed via jsDelivr and the GitHub release page.
135
141
  // 4.22.0 shipped without them after `gulp clean` deleted them and the deletion
136
- // got committed - this check makes CI fail instead.
142
+ // got committed - this check stops the release instead.
137
143
 
138
- for (const f of ['maverick-wave.min.css', 'maverick-wave.min.js']) {
144
+ for (const f of RELEASE
145
+ ? ['maverick-wave.min.css', 'maverick-wave.min.js']
146
+ : []) {
139
147
  const p = path.join(ROOT, f);
140
148
  if (!fs.existsSync(p) || fs.statSync(p).size === 0) {
141
149
  errors.push(
@@ -166,7 +174,10 @@ for (const f of ['maverick-wave.min.css', 'maverick-wave.min.js']) {
166
174
  const { version } = require(path.join(ROOT, 'package.json'));
167
175
  const EXACT_PIN = /maverick-wave@([0-9]+\.[0-9]+\.[0-9]+)/g;
168
176
 
169
- const readme = read(path.join(ROOT, 'README.md'));
177
+ // Only the README half is release state - release.sh rewrites that pin. The
178
+ // skills are installed outside this repo, never get the rewrite, and carry a
179
+ // major range, so an exact pin there is wrong on every branch.
180
+ const readme = RELEASE ? read(path.join(ROOT, 'README.md')) : null;
170
181
  if (readme) {
171
182
  for (const v of new Set(
172
183
  all(readme, EXACT_PIN).filter((v) => v !== version)
@@ -0,0 +1,85 @@
1
+ <h3 class="mw-section-subtitle">Contact</h3>
2
+ <p class="mw-text-muted mw-text-measure mw-mb-6">
3
+ The practical block at the end of a site - when we are open, how to reach us.
4
+ Only the second half is a component: <code>mw-contact</code> is an
5
+ <code>&lt;address&gt;</code> with its italics undone and a label column that
6
+ keeps the values under each other. The hours are a <code>&lt;dl&gt;</code> of
7
+ <code>mw-leader-row</code>, because a day and its times with a line between
8
+ them is the row that component already is.
9
+ </p>
10
+
11
+ <div class="mw-grid-auto-md">
12
+ <article class="mw-card">
13
+ <div class="mw-card-body">
14
+ <h4 class="mw-card-title">
15
+ <span class="mw-card-title-icon">
16
+ <i class="fas fa-clock" aria-hidden="true"></i>
17
+ </span>
18
+ Opening hours
19
+ </h4>
20
+ <hr class="mw-card-title-divider" />
21
+
22
+ <dl class="mw-item-list">
23
+ <div class="mw-leader-row">
24
+ <dt class="mw-leader-row-label">Monday to Friday</dt>
25
+ <dd class="mw-leader-row-value">11.30 - 14.00</dd>
26
+ <dd class="mw-leader-row-value">17.00 - 23.00</dd>
27
+ </div>
28
+ <div class="mw-leader-row">
29
+ <dt class="mw-leader-row-label">Saturday</dt>
30
+ <dd class="mw-leader-row-value">17.00 - 23.00</dd>
31
+ </div>
32
+ <div class="mw-leader-row">
33
+ <dt class="mw-leader-row-label">Sunday</dt>
34
+ <dd class="mw-leader-row-value">11.30 - 20.00</dd>
35
+ </div>
36
+ </dl>
37
+
38
+ <p class="mw-text-sm mw-text-muted mw-mt-6 mw-mb-0">
39
+ Hot food all day on Sunday. Otherwise the kitchen closes an hour before
40
+ the house does.
41
+ </p>
42
+ </div>
43
+ </article>
44
+
45
+ <article class="mw-card mw-card-addon-secondary">
46
+ <div class="mw-card-body">
47
+ <h4 class="mw-card-title">
48
+ <span class="mw-card-title-icon">
49
+ <i class="fas fa-location-dot" aria-hidden="true"></i>
50
+ </span>
51
+ How to reach us
52
+ </h4>
53
+ <hr class="mw-card-title-divider" />
54
+
55
+ <address class="mw-contact mw-mb-6">
56
+ <p class="mw-text-bold">Gasthaus Lamm</p>
57
+ <p>
58
+ Marktplatz 3<br />
59
+ 72622 Musterhausen
60
+ </p>
61
+ <p class="mw-contact-row">
62
+ <span class="mw-contact-label">Phone</span>
63
+ <a class="mw-link" href="tel:+497123456789">07123 456789</a>
64
+ </p>
65
+ <p class="mw-contact-row">
66
+ <span class="mw-contact-label">Email</span>
67
+ <a class="mw-link" href="mailto:info@gasthaus-lamm.de"
68
+ >info@gasthaus-lamm.de</a
69
+ >
70
+ </p>
71
+ </address>
72
+
73
+ <div class="mw-button-bar mw-button-bar-left">
74
+ <a class="mw-btn mw-btn-primary" href="tel:+497123456789">
75
+ <i class="fas fa-phone" aria-hidden="true"></i>
76
+ Call us
77
+ </a>
78
+ <a class="mw-btn mw-btn-outline" href="mailto:info@gasthaus-lamm.de">
79
+ <i class="fas fa-envelope" aria-hidden="true"></i>
80
+ Write us
81
+ </a>
82
+ </div>
83
+ </div>
84
+ </article>
85
+ </div>
@@ -59,6 +59,7 @@
59
59
  </li>
60
60
  <li>
61
61
  <a href="#item-lists">Item Lists</a>
62
+ <a href="#leader-row">Leader Row</a>
62
63
  </li>
63
64
  <li>
64
65
  <a href="#stepper">Stepper</a>
@@ -164,6 +165,8 @@
164
165
  </li>
165
166
  <li>
166
167
  <a href="#calendar">Calendar</a>
168
+ <a href="#lunch-menu">Lunch Menu</a>
169
+ <a href="#contact">Contact</a>
167
170
  </li>
168
171
  <li>
169
172
  <a href="#pagination">Pagination</a>
@@ -0,0 +1,139 @@
1
+ <h3 class="mw-section-subtitle">Leader row</h3>
2
+ <p class="mw-text-muted mw-text-measure mw-mb-6">
3
+ A label, its value, and a dotted line connecting the two - the row a menu, a
4
+ table of contents and an invoice all draw. The line is generated by the row
5
+ itself, so the markup is two spans.
6
+ </p>
7
+ <p class="mw-text-muted mw-text-measure mw-mb-6">
8
+ Label and value is what <code>&lt;dl&gt;</code> is for, and since HTML 5.2 a
9
+ <code>&lt;div&gt;</code> may group a <code>&lt;dt&gt;</code> and its
10
+ <code>&lt;dd&gt;</code> inside one - so the semantic version costs no extra
11
+ element over the plain <code>&lt;p&gt;</code>. Put
12
+ <code>mw-leader-row</code> on that <code>&lt;div&gt;</code> and the two
13
+ classes on the <code>&lt;dt&gt;</code> and <code>&lt;dd&gt;</code>. Use it
14
+ where the pair <em>is</em> the content; where every row also carries a
15
+ description, a <code>&lt;p&gt;</code> stays simpler.
16
+ </p>
17
+
18
+ <div class="mw-grid-2 mw-gap-6">
19
+ <div>
20
+ <h3 class="mw-card-title mw-mb-4">On a menu</h3>
21
+ <div class="mw-card mw-card-simple">
22
+ <div class="mw-item-list">
23
+ <div>
24
+ <p class="mw-leader-row">
25
+ <span class="mw-leader-row-label mw-text-bold">Flatbread soup</span>
26
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary"
27
+ >5.80</span
28
+ >
29
+ </p>
30
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
31
+ Beef broth with pancake strips and chives
32
+ </p>
33
+ </div>
34
+ <div>
35
+ <p class="mw-leader-row">
36
+ <span class="mw-leader-row-label mw-text-bold"
37
+ >Roast pork with dumpling and red cabbage</span
38
+ >
39
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary"
40
+ >17.50</span
41
+ >
42
+ </p>
43
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
44
+ A long label wraps and the leader stays beside its last line
45
+ </p>
46
+ </div>
47
+ </div>
48
+ </div>
49
+
50
+ <h3 class="mw-card-title mw-mb-4 mw-mt-6">Value on the first line</h3>
51
+ <div class="mw-card mw-card-simple">
52
+ <p class="mw-text-muted mw-text-sm mw-mb-5">
53
+ <code>mw-leader-row-top</code> keeps the value beside the
54
+ <em>first</em> line of a wrapping label instead of the last. On a menu
55
+ that is where the price belongs - next to the dish, not somewhere down
56
+ in its description.
57
+ </p>
58
+ <p class="mw-leader-row mw-leader-row-top">
59
+ <span class="mw-leader-row-label mw-text-bold"
60
+ >Roast pork with dumpling and red cabbage</span
61
+ >
62
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary"
63
+ >17.50</span
64
+ >
65
+ </p>
66
+ </div>
67
+
68
+ <h3 class="mw-card-title mw-mb-4 mw-mt-6">Semantic markup</h3>
69
+ <div class="mw-card mw-card-simple">
70
+ <p class="mw-text-muted mw-text-sm mw-mb-5">
71
+ The same row as a <code>&lt;dl&gt;</code>: the group
72
+ <code>&lt;div&gt;</code> carries <code>mw-leader-row</code>, the
73
+ <code>&lt;dt&gt;</code> and <code>&lt;dd&gt;</code> carry the other two
74
+ classes. No extra element over the <code>&lt;p&gt;</code> version.
75
+ </p>
76
+ <dl class="mw-item-list">
77
+ <div class="mw-leader-row">
78
+ <dt class="mw-leader-row-label">Potato soup with marjoram</dt>
79
+ <dd class="mw-leader-row-value">4.90</dd>
80
+ </div>
81
+ <div class="mw-leader-row">
82
+ <dt class="mw-leader-row-label">Mixed leaf salad</dt>
83
+ <dd class="mw-leader-row-value">3.80</dd>
84
+ </div>
85
+ </dl>
86
+ </div>
87
+ </div>
88
+
89
+ <div>
90
+ <h3 class="mw-card-title mw-mb-4">Line styles</h3>
91
+ <div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
92
+ <div>
93
+ <h4 class="mw-text-medium mw-mb-2">Dotted (default)</h4>
94
+ <p class="mw-leader-row">
95
+ <span class="mw-leader-row-label">Introduction</span>
96
+ <span class="mw-leader-row-value">7</span>
97
+ </p>
98
+ </div>
99
+ <div>
100
+ <h4 class="mw-text-medium mw-mb-2">Dashed</h4>
101
+ <p class="mw-leader-row mw-leader-row-dashed">
102
+ <span class="mw-leader-row-label">Second movement</span>
103
+ <span class="mw-leader-row-value">24</span>
104
+ </p>
105
+ </div>
106
+ <div>
107
+ <h4 class="mw-text-medium mw-mb-2">Solid</h4>
108
+ <p class="mw-leader-row mw-leader-row-solid">
109
+ <span class="mw-leader-row-label">Appendix</span>
110
+ <span class="mw-leader-row-value">128</span>
111
+ </p>
112
+ </div>
113
+ <div>
114
+ <h4 class="mw-text-medium mw-mb-2">Retuned per row</h4>
115
+ <p
116
+ class="mw-leader-row"
117
+ style="--mw-leader-row-color: var(--mw-primary-color)"
118
+ >
119
+ <span class="mw-leader-row-label">Total</span>
120
+ <span class="mw-leader-row-value mw-text-bold">1 284.00</span>
121
+ </p>
122
+ </div>
123
+ </div>
124
+
125
+ <h3 class="mw-card-title mw-mb-4 mw-mt-6">Two values</h3>
126
+ <div class="mw-card mw-card-simple">
127
+ <p class="mw-text-muted mw-text-sm mw-mb-5">
128
+ A second <code>mw-leader-row-value</code> needs no extra class - both
129
+ sit after the leader, and a mark in the leader's colour goes between
130
+ them so the pair does not read as one long range.
131
+ </p>
132
+ <p class="mw-leader-row">
133
+ <span class="mw-leader-row-label">Wiener schnitzel with fries</span>
134
+ <span class="mw-leader-row-value mw-text-muted">11.50</span>
135
+ <span class="mw-leader-row-value mw-text-bold">15.90</span>
136
+ </p>
137
+ </div>
138
+ </div>
139
+ </div>
@@ -0,0 +1,341 @@
1
+ <h3 class="mw-section-subtitle">Lunch menu</h3>
2
+ <p class="mw-text-muted mw-text-measure mw-mb-6">
3
+ Nothing below is a lunch-menu component. It is <code>mw-card</code>,
4
+ <code>mw-price</code>, <code>mw-date-stamp</code> and two grid classes - a
5
+ weekly menu is a composition, not a widget. One day per row: five columns
6
+ would squeeze a dish name into a fifth of the page, and a wrapping grid would
7
+ orphan the fifth card into a row of its own. <code>mw-grid-even</code> gives
8
+ every row the height of the tallest, so a day with a second line of
9
+ description does not make its card taller than the rest of the week.
10
+ </p>
11
+ <p class="mw-text-muted mw-text-measure mw-mb-6">
12
+ <code>mw-date-stamp</code> answers to the card, not the viewport. On a narrow
13
+ card it is a muted line above the title; once the card is wide enough that a
14
+ single column would leave its right half empty - as every card in a stacked
15
+ list is - the same markup becomes the column on the left. Because the width it
16
+ switches at is the card's, a stamp behaves the same whichever grid it is
17
+ dropped into. <code>mw-date-stamp-today</code> fills that column instead of
18
+ recolouring it: the price is already primary, and two blues compete where one
19
+ would point.
20
+ </p>
21
+
22
+ <div class="mw-container-narrow">
23
+ <div class="mw-grid-1 mw-grid-even">
24
+ <article class="mw-card mw-offer">
25
+ <div class="mw-card-body">
26
+ <p class="mw-date-stamp">
27
+ <span class="mw-date-stamp-day">Mon</span>
28
+ <span class="mw-date-stamp-date">14.09.</span>
29
+ </p>
30
+ <div class="mw-date-stamp-body">
31
+ <h4 class="mw-text-base mw-text-bold mw-mb-2">
32
+ Lentils with spaetzle
33
+ </h4>
34
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
35
+ Two sausages, a splash of vinegar, and bread on the side.
36
+ </p>
37
+ </div>
38
+ <p class="mw-price mw-price-xs">
39
+ <span class="mw-price-amount">10.90</span>
40
+ <span class="mw-price-currency">Euro</span>
41
+ </p>
42
+ </div>
43
+ </article>
44
+
45
+ <article class="mw-card mw-offer">
46
+ <div class="mw-card-body">
47
+ <p class="mw-date-stamp">
48
+ <span class="mw-date-stamp-day">Tue</span>
49
+ <span class="mw-date-stamp-date">15.09.</span>
50
+ </p>
51
+ <div class="mw-date-stamp-body">
52
+ <h4 class="mw-text-base mw-text-bold mw-mb-2">Roast pork</h4>
53
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
54
+ Bread dumpling, red cabbage and a dark gravy.
55
+ </p>
56
+ </div>
57
+ <p class="mw-price mw-price-xs">
58
+ <span class="mw-price-amount">11.90</span>
59
+ <span class="mw-price-currency">Euro</span>
60
+ </p>
61
+ </div>
62
+ </article>
63
+
64
+ <article class="mw-card mw-offer">
65
+ <div class="mw-card-body">
66
+ <p class="mw-date-stamp">
67
+ <span class="mw-date-stamp-day">Wed</span>
68
+ <span class="mw-date-stamp-date">16.09.</span>
69
+ </p>
70
+ <div class="mw-date-stamp-body">
71
+ <h4 class="mw-text-base mw-text-bold mw-mb-2">Cheese spaetzle</h4>
72
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
73
+ Hand-scraped, mountain cheese, roasted onions, leaf salad.
74
+ </p>
75
+ <p class="mw-tags">
76
+ <span class="mw-tag mw-tag-success">veggie</span>
77
+ </p>
78
+ </div>
79
+ <p class="mw-price mw-price-xs">
80
+ <span class="mw-price-amount">10.50</span>
81
+ <span class="mw-price-currency">Euro</span>
82
+ </p>
83
+ </div>
84
+ </article>
85
+
86
+ <article class="mw-card mw-offer">
87
+ <div class="mw-card-body">
88
+ <p class="mw-date-stamp">
89
+ <span class="mw-date-stamp-day">Thu</span>
90
+ <span class="mw-date-stamp-date">17.09.</span>
91
+ </p>
92
+ <div class="mw-date-stamp-body">
93
+ <h4 class="mw-text-base mw-text-bold mw-mb-2">
94
+ Schnitzel in cream sauce
95
+ </h4>
96
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
97
+ Pork, with spaetzle and a small salad.
98
+ </p>
99
+ </div>
100
+ <p class="mw-price mw-price-xs">
101
+ <span class="mw-price-amount">12.90</span>
102
+ <span class="mw-price-currency">Euro</span>
103
+ </p>
104
+ </div>
105
+ </article>
106
+
107
+ <article class="mw-card mw-offer">
108
+ <div class="mw-card-body">
109
+ <p class="mw-date-stamp mw-date-stamp-today">
110
+ <span class="mw-sr-only">Today,</span>
111
+ <span class="mw-date-stamp-day">Fri</span>
112
+ <span class="mw-date-stamp-date">18.09.</span>
113
+ </p>
114
+ <div class="mw-date-stamp-body">
115
+ <h4 class="mw-text-base mw-text-bold mw-mb-2">Baked fish fillet</h4>
116
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
117
+ In beer batter, with warm potato salad and remoulade.
118
+ </p>
119
+ </div>
120
+ <p class="mw-price mw-price-xs">
121
+ <span class="mw-price-amount">11.90</span>
122
+ <span class="mw-price-currency">Euro</span>
123
+ </p>
124
+ </div>
125
+ </article>
126
+ </div>
127
+ </div>
128
+
129
+ <h3 class="mw-card-title mw-mb-4 mw-mt-10">Two dishes a day</h3>
130
+ <p class="mw-text-muted mw-text-measure mw-mb-6">
131
+ The day is the card, so a second dish is another row inside it rather than a
132
+ second card. With a price per dish there is nothing left for a price column to
133
+ hold, so it goes instead where a printed menu puts it - on a
134
+ <code>mw-leader-row</code>, at the end of the line it prices. The stamp does
135
+ not change at all: it still centres against whatever the card holds beside it,
136
+ two rows or ten.
137
+ </p>
138
+
139
+ <div class="mw-container-narrow">
140
+ <div class="mw-grid-1 mw-grid-even">
141
+ <article class="mw-card">
142
+ <div class="mw-card-body">
143
+ <p class="mw-date-stamp">
144
+ <span class="mw-date-stamp-day">Mon</span>
145
+ <span class="mw-date-stamp-date">14.09.</span>
146
+ </p>
147
+ <div class="mw-date-stamp-body">
148
+ <div class="mw-item-list">
149
+ <div>
150
+ <p class="mw-leader-row mw-leader-row-top">
151
+ <span class="mw-leader-row-label mw-text-bold">
152
+ Lentils with spaetzle
153
+ </span>
154
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
155
+ 10.90 &euro;
156
+ </span>
157
+ </p>
158
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
159
+ Two sausages and a splash of vinegar.
160
+ </p>
161
+ </div>
162
+ <div>
163
+ <p class="mw-leader-row mw-leader-row-top">
164
+ <span class="mw-leader-row-label mw-text-bold">
165
+ Potato soup with marjoram
166
+ <span class="mw-tag mw-tag-success">veggie</span>
167
+ </span>
168
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
169
+ 6.50 &euro;
170
+ </span>
171
+ </p>
172
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
173
+ With a slice of farmhouse bread.
174
+ </p>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ </div>
179
+ </article>
180
+ <article class="mw-card">
181
+ <div class="mw-card-body">
182
+ <p class="mw-date-stamp">
183
+ <span class="mw-date-stamp-day">Tue</span>
184
+ <span class="mw-date-stamp-date">15.09.</span>
185
+ </p>
186
+ <div class="mw-date-stamp-body">
187
+ <div class="mw-item-list">
188
+ <div>
189
+ <p class="mw-leader-row mw-leader-row-top">
190
+ <span class="mw-leader-row-label mw-text-bold">
191
+ Roast pork
192
+ </span>
193
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
194
+ 11.90 &euro;
195
+ </span>
196
+ </p>
197
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
198
+ Bread dumpling, red cabbage, dark gravy.
199
+ </p>
200
+ </div>
201
+ <div>
202
+ <p class="mw-leader-row mw-leader-row-top">
203
+ <span class="mw-leader-row-label mw-text-bold">
204
+ Cheese spaetzle
205
+ <span class="mw-tag mw-tag-success">veggie</span>
206
+ </span>
207
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
208
+ 10.50 &euro;
209
+ </span>
210
+ </p>
211
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
212
+ Mountain cheese, roasted onions, leaf salad.
213
+ </p>
214
+ </div>
215
+ </div>
216
+ </div>
217
+ </div>
218
+ </article>
219
+ <article class="mw-card">
220
+ <div class="mw-card-body">
221
+ <p class="mw-date-stamp">
222
+ <span class="mw-date-stamp-day">Wed</span>
223
+ <span class="mw-date-stamp-date">16.09.</span>
224
+ </p>
225
+ <div class="mw-date-stamp-body">
226
+ <div class="mw-item-list">
227
+ <div>
228
+ <p class="mw-leader-row mw-leader-row-top">
229
+ <span class="mw-leader-row-label mw-text-bold">
230
+ Barley stew
231
+ <span class="mw-tag mw-tag-success">veggie</span>
232
+ </span>
233
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
234
+ 9.50 &euro;
235
+ </span>
236
+ </p>
237
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
238
+ Root vegetables, simmered since morning.
239
+ </p>
240
+ </div>
241
+ <div>
242
+ <p class="mw-leader-row mw-leader-row-top">
243
+ <span class="mw-leader-row-label mw-text-bold">
244
+ Beef roulade
245
+ </span>
246
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
247
+ 13.50 &euro;
248
+ </span>
249
+ </p>
250
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
251
+ Mashed potato and green beans.
252
+ </p>
253
+ </div>
254
+ </div>
255
+ </div>
256
+ </div>
257
+ </article>
258
+ <article class="mw-card">
259
+ <div class="mw-card-body">
260
+ <p class="mw-date-stamp">
261
+ <span class="mw-date-stamp-day">Thu</span>
262
+ <span class="mw-date-stamp-date">17.09.</span>
263
+ </p>
264
+ <div class="mw-date-stamp-body">
265
+ <div class="mw-item-list">
266
+ <div>
267
+ <p class="mw-leader-row mw-leader-row-top">
268
+ <span class="mw-leader-row-label mw-text-bold">
269
+ Schnitzel in cream sauce
270
+ </span>
271
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
272
+ 12.90 &euro;
273
+ </span>
274
+ </p>
275
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
276
+ Pork, with spaetzle and a small salad.
277
+ </p>
278
+ </div>
279
+ <div>
280
+ <p class="mw-leader-row mw-leader-row-top">
281
+ <span class="mw-leader-row-label mw-text-bold">
282
+ Mushroom ragout
283
+ <span class="mw-tag mw-tag-success">veggie</span>
284
+ </span>
285
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
286
+ 10.90 &euro;
287
+ </span>
288
+ </p>
289
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
290
+ With a bread dumpling.
291
+ </p>
292
+ </div>
293
+ </div>
294
+ </div>
295
+ </div>
296
+ </article>
297
+ <article class="mw-card">
298
+ <div class="mw-card-body">
299
+ <p class="mw-date-stamp mw-date-stamp-today">
300
+ <span class="mw-sr-only">Today,</span>
301
+ <span class="mw-date-stamp-day">Fri</span>
302
+ <span class="mw-date-stamp-date">18.09.</span>
303
+ </p>
304
+ <div class="mw-date-stamp-body">
305
+ <div class="mw-item-list">
306
+ <div>
307
+ <p class="mw-leader-row mw-leader-row-top">
308
+ <span class="mw-leader-row-label mw-text-bold">
309
+ Baked fish fillet
310
+ </span>
311
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
312
+ 11.90 &euro;
313
+ </span>
314
+ </p>
315
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
316
+ Beer batter, warm potato salad, remoulade.
317
+ </p>
318
+ </div>
319
+ <div>
320
+ <p class="mw-leader-row mw-leader-row-top">
321
+ <span class="mw-leader-row-label mw-text-bold">
322
+ Pancake soup
323
+ </span>
324
+ <span class="mw-leader-row-value mw-text-bold mw-text-primary">
325
+ 5.80 &euro;
326
+ </span>
327
+ </p>
328
+ <p class="mw-text-sm mw-text-muted mw-mb-0">
329
+ Beef broth with chives.
330
+ </p>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ </div>
335
+ </article>
336
+ </div>
337
+ </div>
338
+
339
+ <p class="mw-text-muted mw-text-sm mw-mt-6">
340
+ The menu changes every week. No reservation, while the pot lasts.
341
+ </p>