Brought to you and maintained by Trellis Commerce - A full-service eCommerce agency based in Boston, MA
Latest merged code from Dawn v15.2.0
Shopify Dawn theme with Tailwind CSS & Prettier integrations
The starter theme includes an integration of:
Configured to use prefix: twcss-
in order to not clash with Dawn’s existing styles
There is the option to switch the order of the base.css
& app.css
stylesheets in theme.liquid
if you want your Tailwind classes to take precedence over the base Dawn styles
noindexnofollow
with the meta tag noindex, nofollow
for any pages that need to be hidden from search engine site crawlers:bangbang: | When forking this repo, make sure to change the settings in the forked repo under Settings > Actions > General > Workflow permissions to be Read and write permissions and check Allow GitHub Actions to create and approve pull requests for the Theme Check & Lighthouse actions to run |
---|
Clone the forked repo, navigate to the directory in your terminal, & run npm install
.
In the theme section of your Shopify admin you can connect to a GitHub repository via “Add theme” button.
shopify theme dev --store=mystore.myshopify.com
and upload the theme with shopify theme share
.:bangbang: | If you are working on a development store and are signed in via your partner dashboard, you must add a separate user in that Shopify store with admin rights and sign in with this new user when logging in using the Shopify CLI |
---|
You can add users in the store Settings:
:bangbang: | This repo does not have the following secrets configured, which is why the Lighthouse action is failing. |
---|
First, make sure your Workflow permissions
are set like below in order for the actions to run:
In your GitHub repo, navigate to Settings > Secrets > Actions and add the following repository secrets:
SHOP_ACCESS_TOKEN
Lighthouse
and give the app permissions of read_products,write_themes
. Install the app and use the token value that will start with shpat_
.SHOP_STORE
mystore.myshopify.com
(ex. trellis-sandbox.myshopify.com
)SHOP_PASSWORD
SHOP_COLLECTION_HANDLE
SHOP_PRODUCT_HANDLE
LHCI_GITHUB_APP_TOKEN
LHCI_GITHUB_APP_TOKEN
These secret values are used in the ci.yml
GitHub workflow:
Before beginning any work, it is good practice to pull down the latest changes from the Shopify Dawn theme:
git fetch upstream
git pull upstream main
Add upstream link if you get the error fatal: 'upstream' does not appear to be a git repository
run:
git remote add upstream https://github.com/Shopify/dawn.git
or git remote add upstream https://github.com/TrellisCommerce/shopify-tailwind-starter-base
depending on which repository you want to pull updates from
Pull down changes from the theme editor:
shopify theme pull -d
Anytime you add a Tailwind CSS class (remember to prefix it with twcss-), run the CLI tool to scan your template files for classes and build your CSS to assets/app.css:
npx tailwindcss -i ./assets/app-tailwind.css -o ./assets/app.css --watch
lg:!twcss-px-[32px]{% endif %}'>
But this does work:
lg:!twcss-px-[32px] {% endif %}'>
shopify theme dev
This version of the theme uses the configurations already existing in with the Trade version of Dawn. Specific B2B-related features have been added to this version of the theme, which so far include:
If a customer is logged in and has made a previous purchase, the Buy Again buttons appear within the cart elements.
N/A
Buy Again button in the cart drawer & on the cart page:
Uses the POST /{locale}/cart/clear.js
endpoint to set all quantities of all line items in the cart to zero. (Shopify documentation)
Toggle on or off feature under Theme Settings > Cart > Show clear cart button:
Clear Cart text button in the cart drawer & on the cart page:
The navigation structure of a store dictates the breadcrumb structure of the collections and product pages up to four nested levels, complete with structured data.
Set the navigation structure of a store under Online Store > Navigation > Menus and then set the store to use the configured menu under Header > Menu:
Breadcrumbs on a product page & collection page:
Cart items can be sorted 4 ways:
Default
- standard way Shopify sorts by order added to cartPrice
- Numeric ascending by total priceTitle
- Alphabetic by product nameQuantity
- Numeric ascending by quantity in cartSelect the way to sort the cart items by navigating to the Items section on the Cart page:
A block for the Header section has been created called Promotional Items, which includes the ability to add one or more promotions to the right side of a desktop mega menu. To keep performance optimal, the images within the mega menu will initially load once a mega menu has been toggled open.
Add a Promotional Items
block for each mega menu that will have a promotion under the Header section. The Nav Postion
value corresponds to the mega menu the promotion will appear in:
Promotion in the header:
Using the parameters available for Shopify’s predictive search, the following fields have been added to be searched with a search query:
N/A
Multiple admin fields have been added at the theme level, as well as at the section level, to allow for more granular control over the Dawn theme's settings and elements directly through the admin by inputting Tailwind CSS classes as values.
First, decide if you want to configure the tailwind.config.js
file to allow for your specific font families, sizes, colors, etc to cut down on the generated Tailwind CSS file from the start, or you can just jump in and take advantage of all the default Tailwind CSS classes.
In order to make all the Tailwind classes available for the editor in the admin, the following was added to the tailwind.config.js
file to include ALL classes, as well as breakpoint & hover variants, and to add !important
to each class to make sure it overrides any existing Dawn styles:
...
// safelist is added to provide all styles for design to add through the admin
safelist: [
{
pattern: /.*/,
variants: ['xs', 'sm', 'md', 'lg', 'hover', 'group-hover'],
},
],
// !important is added to override core Dawn styles for design
important: true,
...
If this theme is handed over to a development team who will be editing the code directly, the safelist array will need to be removed (ideal to also remove the important
key, but that would require adjusting any conflicting Dawn styles) from the config file and the following added to the content array to have Tailwind recognize the classes added through the admin fields:
content: [
...
'./**/*.json',
],
If desired, run the Tailwind compile command to purge any unused styles (this step is optional as making a commit with changes to the tailwind config file will auto-generate a new app.css
file after the commit is pushed, but this step will allow for a quick check on the proper purging of the classes): npx tailwindcss -i ./assets/app-tailwind.css -o ./assets/app.css
To lock down the Tailwind CSS admin fields from being editied through the admin, run gulp
in your terminal to transform all Tailwind text fields to checkbox fields instead and to add the following paragraph text to all Tailwind sections:
Tailwind fields are not editable through the admin at this stage. Please contact a Trellis engineer if changes are needed.
:bangbang: | Note that toggling one of the checkboxes after running gulp will remove the contents of the tailwind admin fields. Since removing the fields also removes the entered values, swapping to a different field type preserves the values and does not allow for editing the values. |
---|
It is recommended to have a separate branch & connected theme version created for the design team to use when adding in classes through the admin fields. This way, when it is time to merge in the changes from that branch to another theme branch, a pull request can be created and all the commits can be reviewed all at once instead of reviewing each individual commit generated by shopify[bot]
.