---
title: Rebuilding Bartik (Drupal’s Default Theme) with Vue.js and Tailwind CSS - part 2
tags:
    - drupal
    - tailwind-css
    - tweet
    - vuejs
has_tweets: true
draft: true
---
{% block excerpt %}
In the [original post](/blog/rebuilding-bartik-with-vuejs-tailwind-css) I detailed how I built a clone of Drupal’s Bartik theme with [Vue.js][1] and [Tailwind CSS][2]. This post details some updates that I’ve made to it since then.
{% endblock %}

{% block content %}
## Customising Tailwind

```js
let colors = {
  'transparent': 'transparent',

  'black': '#22292f',
  'grey-darkest': '#3d4852',
  'grey-dark': '#8795a1',
  'grey': '#b8c2cc',
  'grey-light': '#dae1e7',
  'grey-lighter': '#f0f0f0',
  'grey-lightest': '#F6F6F2',
  'white': '#ffffff',

  'blue-dark': '#2779bd',
  'blue': '#3490dc',
  'blue-light': '#bcdefa',
}
```

## Extracting Tailwind components for link styling

`src/components/Welcome.vue`:

<div v-pre markdown="1">{% raw %}
```vuejs
<template>
  ...

  <div id="footer" class="text-xs text-white">
    <div class="container mx-auto px-4 pt-16 pb-4">
      <div class="border-t border-solid border-grey-darkest pt-6 -mb-6">
        <div class="mb-6">
          <p><a href="#0">Contact</a></p>
        </div>

        <div class="mb-6">
          <p>
            A clone of <a href="https://www.drupal.org">Drupal</a>’s default theme (Bartik).
            Built by <a href="https://www.oliverdavies.uk">Oliver Davies</a>
            using <a href="https://vuejs.org">Vue.js</a>
            and <a href="https://tailwindcss.com">Tailwind CSS</a>.
          </p>
        </div>
      </div>
    </div>
  </div>
</template>
```

```vuejs
<style lang="sass">
#header a
  @apply text-white no-underline

  &:hover,
  &:focus
    @apply underline

#main a
  @apply text-blue-dark no-underline border-b border-blue border-dotted

  &:hover,
  &:focus
    @apply text-blue border-solid

#footer a
  @apply text-white no-underline border-b border-dotted border-white

  &:hover,
  &:focus
    @apply border-none
</style>
```
{% endraw %}</div>

## Extracting a Vue component for Drupal blocks

`src/components/DrupalBlock.vue`:

```vuejs
<template>
    <div class="drupal-block">
        <slot></slot>
    </div>
</template>

<style lang="sass" scoped>
.drupal-block
  @apply bg-grey-lightest p-4

  &:not(:last-child)
    @apply mb-4
</style>
```

`src/components/Welcome.vue`:

```vuejs
<drupal-block>
  <h2 class="font-serif font-normal text-base text-grey-darkest border-b border-solid border-grey-light mb-3">Search</h2>

  <div>
    <form action="#" class="flex">
      <input type="text" class="border border-solid border-grey p-2 w-full xl:w-auto">

      <button type="submit" class="bg-grey-lighter px-3 rounded-full border-b border-solid border-grey-dark ml-2 flex-none">
        <img src="img/loupe.svg" class="block">
      </button>
    </form>
  </div>
</drupal-block>
```
{% endblock %}

[0]: https://www.drupal.org
[1]: https://vuejs.org
[2]: https://tailwindcss.com
[3]: https://github.com/opdavies/rebuilding-bartik
[4]: https://rebuilding-bartik.netlify.com
[5]: https://www.drupal.org/project/tailwindcss