+
+-

+-

+-

+
++

++

++

diff --git a/workshop-tailwind-css/code/yarn-output-after-purge.txt b/workshop-tailwind-css/code/yarn-output-after-purge.txt
new file mode 100644
index 0000000..6feb237
--- /dev/null
+++ b/workshop-tailwind-css/code/yarn-output-after-purge.txt
@@ -0,0 +1,8 @@
+# yarn prod
+yarn run v1.22.5
+$ cross-env NODE_ENV=production postcss assets/css/tailwind.pcss -o public/build/tailwind.css
+Done in 2.52s.
+
+# ls -lh public/build
+total 16K
+-rw-r--r-- 1 root root 12K Feb 11 17:31 tailwind.css
\ No newline at end of file
diff --git a/workshop-tailwind-css/code/yarn-output-before-purge.txt b/workshop-tailwind-css/code/yarn-output-before-purge.txt
new file mode 100644
index 0000000..778db8b
--- /dev/null
+++ b/workshop-tailwind-css/code/yarn-output-before-purge.txt
@@ -0,0 +1,21 @@
+# yarn dev
+yarn run v1.22.5
+$ cross-env NODE_ENV=development postcss assets/css/tailwind.pcss -o public/build/tailwind.css
+Done in 2.77s.
+
+# ls -lh public/build
+total 1.8M
+-rw-r--r-- 1 root root 3.8M Feb 11 12:00 tailwind.css
+
+# yarn prod
+yarn run v1.22.5
+$ cross-env NODE_ENV=production postcss assets/css/tailwind.pcss -o public/build/tailwind.css
+
+warn - Tailwind is not purging unused styles because no template paths have been provided.
+
+warn - If you have manually configured PurgeCSS outside of Tailwind or are deliberately
+not removing unused styles, set `purge: false` in your Tailwind config file to silence
+this warning.
+
+warn - https://tailwindcss.com/docs/controlling-file-size/#removing-unused-css
+Done in 2.75s.
\ No newline at end of file
diff --git a/workshop-tailwind-css/images/1-end.png b/workshop-tailwind-css/images/1-end.png
new file mode 100644
index 0000000..b731128
Binary files /dev/null and b/workshop-tailwind-css/images/1-end.png differ
diff --git a/workshop-tailwind-css/images/1-start.png b/workshop-tailwind-css/images/1-start.png
new file mode 100644
index 0000000..f21f295
Binary files /dev/null and b/workshop-tailwind-css/images/1-start.png differ
diff --git a/workshop-tailwind-css/images/after-config.png b/workshop-tailwind-css/images/after-config.png
new file mode 100644
index 0000000..d7338de
Binary files /dev/null and b/workshop-tailwind-css/images/after-config.png differ
diff --git a/workshop-tailwind-css/images/intro-text-1.png b/workshop-tailwind-css/images/intro-text-1.png
new file mode 100644
index 0000000..4613ff9
Binary files /dev/null and b/workshop-tailwind-css/images/intro-text-1.png differ
diff --git a/workshop-tailwind-css/images/intro-text-2.png b/workshop-tailwind-css/images/intro-text-2.png
new file mode 100644
index 0000000..ed037dc
Binary files /dev/null and b/workshop-tailwind-css/images/intro-text-2.png differ
diff --git a/workshop-tailwind-css/images/intro-text-3.png b/workshop-tailwind-css/images/intro-text-3.png
new file mode 100644
index 0000000..d87cd38
Binary files /dev/null and b/workshop-tailwind-css/images/intro-text-3.png differ
diff --git a/workshop-tailwind-css/images/intro-text-4.png b/workshop-tailwind-css/images/intro-text-4.png
new file mode 100644
index 0000000..34bdc42
Binary files /dev/null and b/workshop-tailwind-css/images/intro-text-4.png differ
diff --git a/workshop-tailwind-css/images/navbar-1.png b/workshop-tailwind-css/images/navbar-1.png
new file mode 100644
index 0000000..e35e834
Binary files /dev/null and b/workshop-tailwind-css/images/navbar-1.png differ
diff --git a/workshop-tailwind-css/images/navbar-2.png b/workshop-tailwind-css/images/navbar-2.png
new file mode 100644
index 0000000..fc7df37
Binary files /dev/null and b/workshop-tailwind-css/images/navbar-2.png differ
diff --git a/workshop-tailwind-css/images/navbar-3.png b/workshop-tailwind-css/images/navbar-3.png
new file mode 100644
index 0000000..90e3455
Binary files /dev/null and b/workshop-tailwind-css/images/navbar-3.png differ
diff --git a/workshop-tailwind-css/images/responsive-1.png b/workshop-tailwind-css/images/responsive-1.png
new file mode 100644
index 0000000..733ded1
Binary files /dev/null and b/workshop-tailwind-css/images/responsive-1.png differ
diff --git a/workshop-tailwind-css/images/responsive-2.png b/workshop-tailwind-css/images/responsive-2.png
new file mode 100644
index 0000000..71c5648
Binary files /dev/null and b/workshop-tailwind-css/images/responsive-2.png differ
diff --git a/workshop-tailwind-css/images/responsive-3.png b/workshop-tailwind-css/images/responsive-3.png
new file mode 100644
index 0000000..00cdac4
Binary files /dev/null and b/workshop-tailwind-css/images/responsive-3.png differ
diff --git a/workshop-tailwind-css/images/responsive-4.png b/workshop-tailwind-css/images/responsive-4.png
new file mode 100644
index 0000000..569d623
Binary files /dev/null and b/workshop-tailwind-css/images/responsive-4.png differ
diff --git a/workshop-tailwind-css/images/screenshot-laravel-nova.png b/workshop-tailwind-css/images/screenshot-laravel-nova.png
new file mode 100644
index 0000000..c5864e3
Binary files /dev/null and b/workshop-tailwind-css/images/screenshot-laravel-nova.png differ
diff --git a/workshop-tailwind-css/images/screenshot-rebuilding-bartik.png b/workshop-tailwind-css/images/screenshot-rebuilding-bartik.png
new file mode 100644
index 0000000..bea7ef3
Binary files /dev/null and b/workshop-tailwind-css/images/screenshot-rebuilding-bartik.png differ
diff --git a/workshop-tailwind-css/images/screenshot-send-firefox.png b/workshop-tailwind-css/images/screenshot-send-firefox.png
new file mode 100644
index 0000000..9400658
Binary files /dev/null and b/workshop-tailwind-css/images/screenshot-send-firefox.png differ
diff --git a/workshop-tailwind-css/images/sponsors-1.png b/workshop-tailwind-css/images/sponsors-1.png
new file mode 100644
index 0000000..c4d754a
Binary files /dev/null and b/workshop-tailwind-css/images/sponsors-1.png differ
diff --git a/workshop-tailwind-css/images/sponsors-2.png b/workshop-tailwind-css/images/sponsors-2.png
new file mode 100644
index 0000000..b2f39a0
Binary files /dev/null and b/workshop-tailwind-css/images/sponsors-2.png differ
diff --git a/workshop-tailwind-css/images/video-1.png b/workshop-tailwind-css/images/video-1.png
new file mode 100644
index 0000000..d85462c
Binary files /dev/null and b/workshop-tailwind-css/images/video-1.png differ
diff --git a/workshop-tailwind-css/images/video-2.png b/workshop-tailwind-css/images/video-2.png
new file mode 100644
index 0000000..a5e8c9e
Binary files /dev/null and b/workshop-tailwind-css/images/video-2.png differ
diff --git a/workshop-tailwind-css/images/video-3.png b/workshop-tailwind-css/images/video-3.png
new file mode 100644
index 0000000..c008381
Binary files /dev/null and b/workshop-tailwind-css/images/video-3.png differ
diff --git a/workshop-tailwind-css/images/video-4.png b/workshop-tailwind-css/images/video-4.png
new file mode 100644
index 0000000..689b153
Binary files /dev/null and b/workshop-tailwind-css/images/video-4.png differ
diff --git a/workshop-tailwind-css/images/video-5.png b/workshop-tailwind-css/images/video-5.png
new file mode 100644
index 0000000..8c62db6
Binary files /dev/null and b/workshop-tailwind-css/images/video-5.png differ
diff --git a/workshop-tailwind-css/images/video-6.png b/workshop-tailwind-css/images/video-6.png
new file mode 100644
index 0000000..06cb4a4
Binary files /dev/null and b/workshop-tailwind-css/images/video-6.png differ
diff --git a/workshop-tailwind-css/main.style b/workshop-tailwind-css/main.style
new file mode 100644
index 0000000..698dd6f
--- /dev/null
+++ b/workshop-tailwind-css/main.style
@@ -0,0 +1,133 @@
+pageSetup:
+ firstTemplate: coverPage
+ height: 18cm
+ margin-bottom: 0cm
+ margin-gutter: 0cm
+ margin-left: 0cm
+ margin-right: 0cm
+ margin-top: 0cm
+ size: null
+ spacing-footer: 2mm
+ spacing-header: 2mm
+ width: 32cm
+
+pageTemplates:
+ coverPage:
+ # background: images/title.png
+ frames: []
+ [12%, 10%, 76%, 75%]
+ showFooter: false
+ showHeader: false
+
+ titlePage:
+ alignment: TA_CENTER
+ frames: []
+ [8%, 8%, 85%, 65%]
+ showFooter: true
+ showHeader: false
+
+ standardPage:
+ frames: []
+ [3%, 3%, 92%, 92%]
+ showFooter: true
+ showHeader: false
+
+ imagePage:
+ alignment: TA_CENTER
+ frames: []
+ [12%, 10%, 76%, 80%]
+ showFooter: true
+ showHeader: false
+
+ outputPage:
+ frames: []
+ [8%, 10%, 82%, 65%]
+ showFooter: false
+ showHeader: false
+
+linkColor: #24608a
+
+fontsAlias:
+ stdMono: Inconsolata-Regular
+ stdMonoBold: Inconsolata-Regular
+ stdMonoItalic: Inconsolata-Regular
+
+styles:
+ normal:
+ fontSize: 24
+ leading: 32
+ textColor: #383745
+
+ bodytext:
+ alignment: TA_LEFT
+
+ heading:
+ fontSize: 20
+ spaceAfter: 16
+ textColor: #24608a
+
+ title:
+ fontSize: 300%
+ parent: heading
+
+ bullet-list:
+ commands: []
+ [LEFTPADDING, [0, 0], [1, -1], 10]
+ [RIGHTPADDING, [0, 0], [1, -1], 0]
+ [VALIGN, [0, 0], [-1, -1], TOP]
+ colWidths: ["20", null]
+ textColor: #aaaaaa
+
+ bullet-list-item:
+ spaceBefore: 14
+ spaceAfter: 0
+
+ titleslideinfo:
+ alignment: TA_CENTER
+ fontSize: 140%
+ parent: normal
+
+ footer:
+ alignment: TA_RIGHT
+ fontName: stdMono
+ fontSize: 20
+ textColor: #24608a
+ rightIndent: 16
+ spaceBefore: 0
+
+ literal:
+ backColor: #eeeeee
+ fontName: stdMono
+
+ code:
+ backColor: white
+ borderWidth: 0
+ fontSize: 20
+ leading: 24
+ parent: literal
+ spaceBefore: 4
+
+ blockquote:
+ parent: normal
+ fontName: stdItalic
+ leading: 36
+
+ attribution:
+ parent: normal
+ textColor: #66666
+
+ centred:
+ alignment: TA_CENTER
+ parent: normal
+
+ centredtitle:
+ alignment: TA_CENTER
+ fontName: stdBold
+ fontSize: 48
+ leading: 64
+ parent: heading
+
+ centredcode:
+ alignment: TA_CENTER
+ backColor: white
+ parent: literal
\ No newline at end of file
diff --git a/workshop-tailwind-css/notes.rst b/workshop-tailwind-css/notes.rst
new file mode 100644
index 0000000..d36f96e
--- /dev/null
+++ b/workshop-tailwind-css/notes.rst
@@ -0,0 +1,6 @@
+Generating the combined PDF
+---------------------------
+
+.. code-block::
+
+ pdftk A=slides.pdf B='FLDC 2021 Presenter Slides.pdf' cat A1 B3-4 A2-79 B5-6 output combined.pdf
diff --git a/workshop-tailwind-css/sections/intro.rst b/workshop-tailwind-css/sections/intro.rst
new file mode 100644
index 0000000..e0eef50
--- /dev/null
+++ b/workshop-tailwind-css/sections/intro.rst
@@ -0,0 +1,113 @@
+.. page:: standardPage
+
+Prerequisites
+-------------
+
+* Git
+* PHP
+* Composer
+* npm/yarn
+
+Before we start
+---------------
+
+.. code-block::
+ :include: code/task-1-before.txt
+
+.. page:: imagePage
+
+.. image:: images/1-start.png
+ :width: 22cm
+
+.. page:: titlePage
+
+.. class:: centredtitle
+
+What is Tailwind CSS?
+
+.. page::
+
+.. class:: centredtitle
+
+A utility-first CSS framework for rapidly building custom designs
+
+.. raw:: pdf
+
+ TextAnnotation "CSS utility class generator."
+ TextAnnotation "PostCSS plugin."
+ TextAnnotation "Make different looking sites using the same class names."
+ TextAnnotation "No 'Tailwind looking site' like there is with Bootstrap."
+
+.. page::
+
+.. class:: centredtitle
+
+Tailwind CSS is a highly customisable, low-level CSS framework
+
+.. raw:: pdf
+
+ TextAnnotation "No components like Bootstrap or Bulma."
+ TextAnnotation "Configure it per project."
+ TextAnnotation "Extendable if needed via additional plugins."
+ TextAnnotation "Avoids the need to name things prematurely."
+ TextAnnotation "Can extract components if needed (reusability)."
+
+.. page::
+
+.. class:: centredtitle
+
+Tailwind is more than a CSS framework, it's an engine for creating design systems
+
+.. raw:: pdf
+
+ TextAnnotation "Good default values provided - colours, fonts, padding, widths"
+ TextAnnotation "Designing with constraints."
+ TextAnnotation "Using inline styles, every value is a magic number."
+ TextAnnotation "With utilities, you're choosing styles from a predefined design system, which makes it much easier to build visually consistent UIs."
+
+.. page:: standardPage
+
+- Text/border/background colours
+- Font size/family/weight
+- Alignment
+- Padding/margin/negative margin
+- Flexbox
+- Positioning
+- Lists
+- z-index
+- Opacity
+
+.. raw:: pdf
+
+ TextAnnotation "Some of the 'original' things that Tailwind would generate classes for."
+
+.. page::
+
+- Screenreader visibility
+- Placeholder colour
+- first-child, last-child, nth-child
+- CSS Grid
+- Transition
+- Transform
+- Spacing / Divide
+- Focus ring
+- Text clamping
+
+.. raw:: pdf
+
+ TextAnnotation "All generated from a single, customisable configuration file."
+
+.. page:: imagePage
+
+.. image:: images/screenshot-laravel-nova.png
+ :width: 22cm
+
+.. page::
+
+.. image:: images/screenshot-send-firefox.png
+ :width: 22cm
+
+.. page::
+
+.. image:: images/screenshot-rebuilding-bartik.png
+ :width: 22cm
diff --git a/workshop-tailwind-css/sections/task-1-add-tailwind-css.rst b/workshop-tailwind-css/sections/task-1-add-tailwind-css.rst
new file mode 100644
index 0000000..58b124f
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-1-add-tailwind-css.rst
@@ -0,0 +1,44 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 1: Adding Tailwind CSS
+
+.. page:: standardPage
+
+.. code-block:: bash
+ :include: code/adding-tailwind.txt
+ :end-before: -- adding tailwind
+
+.. page::
+
+Create the source file:
+
+|
+
+.. code-block:: css
+ :include: code/adding-tailwind.txt
+ :start-after: -- adding tailwind
+ :end-before: -- adding scripts
+
+.. page::
+
+Add to ``package.json``:
+
+.. code-block:: js
+ :include: code/adding-tailwind.txt
+ :start-after: -- adding scripts
+ :end-before: -- adding the stylesheet
+
+|
+
+Add to ``templates/html.html.twig``:
+
+.. code-block:: html
+ :include: code/adding-tailwind.txt
+ :start-after: -- adding the stylesheet
+
+.. page:: imagePage
+
+.. image:: images/1-end.png
+ :width: 22cm
diff --git a/workshop-tailwind-css/sections/task-2-intro-text.rst b/workshop-tailwind-css/sections/task-2-intro-text.rst
new file mode 100644
index 0000000..03b695c
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-2-intro-text.rst
@@ -0,0 +1,54 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 2: Add text styling
+
+.. page:: standardPage
+
+Before we start
+---------------
+
+.. code-block::
+ :include: code/task-2-before.txt
+
+.. page::
+
+Adding intro text
+-----------------
+
+.. code-block:: html
+ :include: code/intro-text-1.txt
+
+.. page:: imagePage
+
+.. image:: images/intro-text-1.png
+ :width: 22cm
+
+.. page:: standardPage
+
+.. code-block:: html
+ :include: code/intro-text-2.txt
+ :hl_lines: 3
+
+.. page:: imagePage
+
+.. image:: images/intro-text-2.png
+ :width: 22cm
+
+.. page:: standardPage
+
+.. code-block:: html
+ :include: code/intro-text-3.txt
+ :hl_lines: 4 8
+
+.. page::
+
+.. code-block:: html
+ :include: code/intro-text-4.txt
+ :hl_lines: 10 13
+
+.. page:: imagePage
+
+.. image:: images/intro-text-4.png
+ :width: 22cm
diff --git a/workshop-tailwind-css/sections/task-3-navbar.rst b/workshop-tailwind-css/sections/task-3-navbar.rst
new file mode 100644
index 0000000..0f9ca99
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-3-navbar.rst
@@ -0,0 +1,45 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 3: Add a navbar component
+
+.. page:: standardPage
+
+Before we start
+---------------
+
+.. code-block::
+ :include: code/task-3-before.txt
+
+.. page:: standardPage
+
+.. code-block:: html
+ :include: code/navbar-1.txt
+
+.. page:: imagePage
+
+.. image:: images/navbar-1.png
+ :width: 22cm
+
+.. page:: standardPage
+
+.. code-block:: html
+ :include: code/navbar-2.txt
+ :hl_lines: 3 4
+
+.. page:: imagePage
+
+.. image:: images/navbar-2.png
+ :width: 22cm
+
+.. page:: standardPage
+
+.. code-block:: html
+ :include: code/navbar-3.txt
+ :hl_lines: 11 12 13 14 15 16 17 18
+
+.. page:: imagePage
+
+.. image:: images/navbar-3.png
+ :width: 22cm
diff --git a/workshop-tailwind-css/sections/task-4-config.rst b/workshop-tailwind-css/sections/task-4-config.rst
new file mode 100644
index 0000000..84c4d63
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-4-config.rst
@@ -0,0 +1,47 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 4: Change the default configuration
+
+.. page:: standardPage
+
+Before we start
+---------------
+
+.. code-block::
+ :include: code/task-4-before.txt
+
+.. page::
+
+tailwind.config.js
+------------------
+
+.. code-block:: js
+ :include: code/config-1.txt
+ :linenos:
+
+Adding the Bebas font
+---------------------
+
+.. code-block:: html
+ :include: code/config-2.txt
+ :hl_lines: 5 6
+
+Updating existing classes
+-------------------------
+
+.. code-block:: diff
+ :include: code/config-3.txt
+
+
+Updating existing classes
+-------------------------
+
+.. code-block:: diff
+ :include: code/config-4.txt
+
+.. page:: imagePage
+
+.. image:: images/after-config.png
+ :width: 22cm
diff --git a/workshop-tailwind-css/sections/task-5-loops.rst b/workshop-tailwind-css/sections/task-5-loops.rst
new file mode 100644
index 0000000..42b621d
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-5-loops.rst
@@ -0,0 +1,25 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 5: Refactor - avoid duplication using loops
+
+.. page:: standardPage
+
+Before we start
+---------------
+
+.. code-block::
+ :include: code/task-5-before.txt
+
+Using a loop
+------------
+
+.. code-block:: html
+ :include: code/loops-1.txt
+
+Using a loop
+------------
+
+.. code-block:: twig
+ :include: code/loops-2.txt
diff --git a/workshop-tailwind-css/sections/task-6-video.rst b/workshop-tailwind-css/sections/task-6-video.rst
new file mode 100644
index 0000000..dc70da9
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-6-video.rst
@@ -0,0 +1,80 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 6: Add the video component
+
+.. page:: standardPage
+
+Before we start
+---------------
+
+.. code-block::
+ :include: code/task-6-before.txt
+
+.. page::
+
+.. code-block:: html
+ :include: code/video-1.txt
+
+.. page:: imagePage
+
+.. image:: images/video-1.png
+ :width: 22cm
+
+.. page:: standardPage
+
+.. code-block:: diff
+ :include: code/video-2.txt
+
+.. page:: imagePage
+
+.. image:: images/video-2.png
+ :width: 22cm
+
+.. page:: standardPage
+
+Adding the logo
+---------------
+
+.. code-block:: html
+ :include: code/video-3.txt
+ :hl_lines: 13 14
+
+.. page:: imagePage
+
+.. image:: images/video-3.png
+ :width: 22cm
+
+.. page:: standardPage
+
+Positioning the logo
+--------------------
+
+.. code-block:: diff
+ :include: code/video-4.txt
+
+.. page:: imagePage
+
+.. image:: images/video-4.png
+ :width: 22cm
+
+.. page:: standardPage
+
+Adding stars
+------------
+
+.. code-block:: html
+ :include: code/video-5.txt
+ :hl_lines: 6 7 8
+
+Positioning the stars
+---------------------
+
+.. code-block:: diff
+ :include: code/video-6.txt
+
+.. page:: imagePage
+
+.. image:: images/video-6.png
+ :width: 22cm
diff --git a/workshop-tailwind-css/sections/task-7-sponsors.rst b/workshop-tailwind-css/sections/task-7-sponsors.rst
new file mode 100644
index 0000000..c89d325
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-7-sponsors.rst
@@ -0,0 +1,40 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 7: Add the sponsors component
+
+.. page:: standardPage
+
+.. code-block::
+ :include: code/task-7-before.txt
+
+.. page::
+
+.. code-block:: twig
+ :include: code/sponsors-1.txt
+
+.. page::
+
+.. code-block:: twig
+ :include: code/sponsors-2.txt
+
+.. page:: imagePage
+
+.. image:: images/sponsors-1.png
+ :width: 22cm
+
+.. page:: standardPage
+
+.. code-block:: twig
+ :include: code/sponsors-3.txt
+
+.. page::
+
+.. code-block:: html
+ :include: code/sponsors-4.txt
+
+.. page:: imagePage
+
+.. image:: images/sponsors-2.png
+ :width: 22cm
\ No newline at end of file
diff --git a/workshop-tailwind-css/sections/task-8-responsive.rst b/workshop-tailwind-css/sections/task-8-responsive.rst
new file mode 100644
index 0000000..c4d7159
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-8-responsive.rst
@@ -0,0 +1,28 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 8: Make it responsive
+
+.. page:: standardPage
+
+Before we start
+---------------
+
+.. code-block::
+ :include: code/task-8-before.txt
+
+.. page::
+
+.. code-block:: diff
+ :include: code/responsive-1.txt
+
+.. page::
+
+.. code-block:: diff
+ :include: code/responsive-2.txt
+
+.. page::
+
+.. code-block:: diff
+ :include: code/responsive-3.txt
diff --git a/workshop-tailwind-css/sections/task-9-purgecss.rst b/workshop-tailwind-css/sections/task-9-purgecss.rst
new file mode 100644
index 0000000..180b918
--- /dev/null
+++ b/workshop-tailwind-css/sections/task-9-purgecss.rst
@@ -0,0 +1,28 @@
+.. page:: titlePage
+
+.. class:: centredtitle
+
+Task 9: Configure PurgeCSS
+
+.. page:: standardPage
+
+.. code-block::
+ :include: code/yarn-output-before-purge.txt
+ :end-before: # yarn prod
+
+.. page::
+
+.. code-block::
+ :include: code/yarn-output-before-purge.txt
+ :start-at: # yarn prod
+
+Configuring PurgeCSS
+--------------------
+
+.. code-block:: diff
+ :include: code/configuring-purgecss.txt
+
+.. page::
+
+.. code-block::
+ :include: code/yarn-output-after-purge.txt
diff --git a/workshop-tailwind-css/slides.rst b/workshop-tailwind-css/slides.rst
new file mode 100644
index 0000000..87ff6a9
--- /dev/null
+++ b/workshop-tailwind-css/slides.rst
@@ -0,0 +1,39 @@
+.. footer:: @opdavies
+
+Soaring with utility-first CSS and Tailwind
+===========================================
+
+|
+
+.. class:: titleslideinfo
+
+Oliver Davies (@opdavies)
+
+.. include:: sections/intro.rst
+.. include:: sections/task-1-add-tailwind-css.rst
+.. include:: sections/task-2-intro-text.rst
+.. include:: sections/task-3-navbar.rst
+.. include:: sections/task-4-config.rst
+.. include:: sections/task-5-loops.rst
+.. include:: sections/task-6-video.rst
+.. include:: sections/task-7-sponsors.rst
+.. include:: sections/task-8-responsive.rst
+.. include:: sections/task-9-purgecss.rst
+
+.. page:: standardPage
+
+Thanks!
+-------
+
+References:
+
+* https://tailwindcss.com
+* https://tailwindui.com
+* https://www.youtube.com/c/TailwindLabs
+* https://drupal.org/project/tailwindcss
+
+|
+
+Me:
+
+* https://www.oliverdavies.uk