Coder Social home page Coder Social logo

craft-style-inliner's Introduction

Craft 4 Style Inliner Plugin

A Twig tag for inlining styles in a template.

Requirements

This plugin requires Craft CMS 4.0.2 or later.

Installation

To install this plugin, follow these instructions.

  1. Open your terminal and go to your Craft project:
cd /path/to/project
  1. Tell Composer to require the plugin:
composer require enovatedesign/craft-style-inliner
  1. In the Control Panel, go to Settings → Plugins and click the “Install” button for Style Inliner.

Usage

Inline CSS

Use the {% inlinecss %}{% endinlinecss %} tag pair in your templates.

Input:

{% inlinecss %}
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style type="text/css">
            h1 { color: red }
        </style>
    </head>
    <body>
        <h1>Hello, world!</h1>
    </body>
</html>
{% endinlinecss %}

Output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <style type="text/css">
            h1 { color:red }
        </style>
    </head>
    <body>
        <h1 style="color: red;">Hello, world!</h1>
    </body>
</html>

Critical CSS

You can inline entire local CSS files in to the <head> of a document with the {% criticalcss %} twig tag.

{% extends "_layout.twig" %}

{% criticalcss 'home' %}

The .css extension is added automatically. By default the plugin prefixes the @webroot/ alias, but this can be configured in a config file. You can also switch critical CSS on and off entirely for each environment:

/config/style-inliner.php

<?php

return [
    'criticalCss' => true,
    'criticalPrefix' => '@webroot/resources/',
];

craft-style-inliner's People

Contributors

enovate-jordan avatar jshgrn avatar jurdunnn avatar leecrosdale avatar mattsbanner avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.