Sage is a productivity-driven WordPress starter theme with a modern development workflow.

Overview

Sage

MIT License Packagist Build Status Follow Roots

WordPress starter theme with a modern development workflow
Built with ❤️

Official Website | Documentation | Change Log

Supporting

Sage is an open source project and completely free to use.

However, the amount of effort needed to maintain and develop new features and products within the Roots ecosystem is not sustainable without proper financial backing. If you have the capability, please consider donating using the links below:

Sponsor on GitHub Sponsor on Patreon Donate via PayPal

About Sage

Sage is a productivity-driven WordPress starter theme with a modern development workflow.

The master branch currently tracks Sage 10 which is in active development. Looking for Sage 9? See releases.

Features

  • Harness the power of Laravel and its available packages thanks to Acorn.
  • Clean, efficient theme templating utilizing Laravel Blade.
  • Easy Browsersync support alongside asset compilation, concatenating, and minification powered by Laravel Mix.
  • Out of the box support for TailwindCSS and jQuery.
  • A clean starting point for theme styles using Sass.

See a working example at roots-example-project.com.

Requirements

Make sure all dependencies have been installed before moving on:

Theme installation

Install Sage using Composer from your WordPress themes directory (replace your-theme-name below with the name of your theme):

# @ app/themes/ or wp-content/themes/
$ composer create-project roots/sage your-theme-name

To install the latest development version of Sage, add dev-master to the end of the command:

$ composer create-project roots/sage your-theme-name dev-master

Theme structure

themes/your-theme-name/   # → Root of your Sage based theme
├── app/                  # → Theme PHP
│   ├── View/             # → View models
│   ├── Providers/        # → Service providers
│   ├── admin.php         # → Theme customizer setup
│   ├── filters.php       # → Theme filters
│   ├── helpers.php       # → Helper functions
│   └── setup.php         # → Theme setup
├── bootstrap/            # → Acorn bootstrap
│   ├── cache/            # → Acorn cache location (never edit)
│   └── app.php           # → Acorn application bootloader
├── config/               # → Config files
│   ├── app.php           # → Application configuration
│   ├── assets.php        # → Asset configuration
│   ├── filesystems.php   # → Filesystems configuration
│   ├── logging.php       # → Logging configuration
│   └── view.php          # → View configuration
├── composer.json         # → Autoloading for `app/` files
├── composer.lock         # → Composer lock file (never edit)
├── public/               # → Built theme assets (never edit)
├── functions.php         # → Theme bootloader
├── index.php             # → Theme template wrapper
├── node_modules/         # → Node.js packages (never edit)
├── package.json          # → Node.js dependencies and scripts
├── resources/            # → Theme assets and templates
│   ├── fonts/            # → Theme fonts
│   ├── images/           # → Theme images
│   ├── scripts/               # → Theme javascript
│   ├── styles/              # → Theme stylesheets
│   └── views/            # → Theme templates
│       ├── components/   # → Component templates
│       ├── form/         # → Form templates
│       ├── layouts/      # → Base templates
│       └── partials/     # → Partial templates
├── screenshot.png        # → Theme screenshot for WP admin
├── storage/              # → Storage location for cache (never edit)
├── style.css             # → Theme meta information
├── vendor/               # → Composer packages (never edit)
└── webpack.mix.js        # → Laravel Mix configuration

Theme setup

Edit app/setup.php to enable or disable theme features, setup navigation menus, post thumbnail sizes, and sidebars.

Theme development

  • Run yarn from the theme directory to install dependencies
  • Update webpack.mix.js with your local dev URL

Build commands

  • yarn start — Compile assets when file changes are made, start Browsersync session
  • yarn build — Compile and optimize the files in your assets directory
  • yarn build:production — Compile assets for production

Documentation

Contributing

Contributions are welcome from everyone. We have contributing guidelines to help you get started.

Sage sponsors

Help support our open-source development efforts by becoming a sponsor.

Kinsta KM Digital Carrot C21 Redwood Realty WordPress.com Icons8 Harness Software Airfleet Genero Motto

Community

Keep track of development and community news.

Comments
  • Roots can not find CSS and JS files

    Roots can not find CSS and JS files

    Hello! I really like Roots and would love to tinker around but Ive gotten a small problem at hands. I have a fresh WP 3.3.2 installation and latest Roots cloned from here but after installation, it does not find the CSS and JS files declared in head.

    I am not sure what the issue could be but Im sure Im not the only one. Anyone has any helpful information?

    opened by plekter 76
  • htaccess causing, 500 server error

    htaccess causing, 500 server error

    I've been using this theme to design and deploy sites for about 4 months and I love it. But recently I've been running into the following problem. Has anyone else had this problem.

    My environment:

    • WP 3.2.1
    • Live server: hosted with Hostmonster.com
    • Roots theme version: 3.6.0
    • Other plugins: A couple plugins I've written for Custom Post Types, Custom Meta Boxes, & Custom Taxonomies. (no rewrite rules, filters, or remove actions being used.), & plugin to change from email address (uses filter for wp_mail_from & wp_mail_from_name).

    Description: I install & activate the theme and it loads fine. After I've been customizing it, making changes to template files, function.php, and/or editing plugin files... I'll get a 500 server error. When I check my error logs on the server I see rewrite rules errors. So I check my htaccess file. This is when I see that it was rewritten, and the code is either jumbled thereby causing an error, or it has appended or prepended additional code that causes errors. Here's the latest code that was added to the end of the htaccess file.

    This code was added after the # END Wordpress ------ Code Starts Here --------- ue error_prepend_string " "

    /# Don't prepend to error (doesn't accept empty string, use whitespace if you need) /# php_value error_append_string " "

    /# Increase cookie security php_value session.cookie_httponly true /# END WordPress ------- Code Ends Here ---------

    Note: After I removed these lines, the site came back up. This keeps happening, sometimes every few hours, sometimes every few days. Any suggestions would be greatly appreciated.

    Mark.

    bug 
    opened by nuresponse 68
  • Rewrite killing other plugins

    Rewrite killing other plugins

    Hi, The new re-write for script URLs for example seems to be killing some plugins - for example, the output looks like:

    <script src="/base//base/wp-content/plugins/jquery-colorbox/js/jquery.colorbox-min.js"></script>

    Also - why wouldn't this be hooking into the proper re-write to not only be relative, but also use the /plugins URL as it did in other versions? /base is the root of the site -- in a sub-directory and /base is also the name of the theme folder

    Also, when adding in new scripts the standard WP way, this doesn't work properly:

    function roots_custom_scripts() {
      wp_register_script('roots_script_less', THEME_PATH . '/js/less.min.js', false, null, false);
      wp_enqueue_script('roots_script_less');
    }
    
    add_action('wp_print_scripts', 'roots_custom_scripts');
    

    It spits out <script type='text/javascript' src='/basewp-content/themes/base/js/less.min.js'></script> which is missing a / and also is not rewritten. If we are trying to take the approach of not touching the core roots files, then what's the best way to add JS files? Maybe a quick WIKI addition would help, but something seems a bit off with the plugin rewrite for JS files in general unless I'm missing something. Thanks.

    bug 
    opened by zslabs 58
  • URLs broken when install is >= 2 subfolders deep

    URLs broken when install is >= 2 subfolders deep

    I've been trying to create a child theme in my wordpress which is installed in a custom directory (/vendor/wp in my case) and configured to work by default from / .

    In the functions roots_scripts() in roots-scripts.php the value of $base is right, but it seems that the function wp_register_script adds automatically the base wordpress directory and hence duplicates the first part of the URI, in my case it converts it to /vendor/wp/vendor/wp/wp-content/themes/roots/js/[...]

    I'm not enough familiar with the URI functions of wordpress, but it seems that is necessary a function like get_template_directory_uri() but relative to the install directory of wordpress.

    By now I'll bypass the value of $base in the parent theme.

    Thanks for a wonderful product.

    Regards from Spain.

    bug 
    opened by jfsebastian 57
  • Native gutenberg templating and styles

    Native gutenberg templating and styles

    The ideal version of this PR replaces Sage's _wp-classes.scss but the reality is a bit more complicated. Note that this PR brings the total build:production up to 229kb. If you compare that with the Gutenberg default styles, I believe it is a net savings.

    I tried to adhere to Bootstrap standards as much as possible but it has been a couple years since I have used this framework. I imagine that there are more bootstrap-y ways to do many things within this PR, and I think it's probably best if someone who is already opinionated about usage of Bootstrap to incorporate them. I have tried to structure my work in a way that will make that process approachable.

    Note that this PR also includes an additional composer dependency: querypath/querypath. It is utilized in filters.php to wrap .alignwide and .alignfull blocks using a div with the class .gutenberg-wrap applied. This makes it much easier to deal with these elements.

    This analysis / study, along with many, many hours of frustrating experimentation, have led me to believe this is the correct approach. Also note the adoption of this method by Gutenberg contributor Chris Van Patten. To me, this component of the PR serves as a reasonably lightweight fix for an issue in a very unpredictable upstream.

    This PR also restructures the starter template so that Gutenberg can have the full viewport. While it is possible to have Gutenberg output restricted to a container with a width less than 100vw there are issues that crop up when dealing with .alignwide and .alignfull elements. The main solution I've seen has been to utilize something like this:

    .entry-content .alignfull,
    .entry-content .alignwide {
        margin-left: calc( -100vw / 2 + 100% / 2 );
        margin-right: calc( -100vw / 2 + 100% / 2 );
        max-width: 100vw;
    }
    

    This works pretty well but it is not 💯. As detailed in the codepen.io study above, this approach causes issues with wp-block-cover that have a fixed background on various mobile devices. This is why I believe the approach in this PR is something closer to a best practice and am utilizing it in my own projects.

    There are still some missing pieces of functionality, but this PR is already rather broad and I do not want to FUBAR it with complexity.

    opened by kellymears 43
  • Roots activation options

    Roots activation options

    when activating roots you should be asked if you want everything in roots-activation.php to take place (rather than being forced):

    • create home page
    • create nav menus and set their locations
    • add all pages to primary nav
    • set permalink structure to /%year%/%postname%/
    • set uploads folder to /assets/ and don't organize by month/year
    opened by retlehs 40
  • use Bootstrap as default CSS framework

    use Bootstrap as default CSS framework

    when twitter's bootstrap 2 comes out on january 31st we should make it the default CSS framework

    http://www.markdotto.com/2012/01/24/bootstrap-2-ready-for-testing-and-feedback/

    opened by retlehs 35
  • Roots 7.0.0

    Roots 7.0.0

    • [x] Add Bower (#922, #978)
    • [x] Better LESS organization (#961)
    • [x] Different Grunt workflow (#933)
    • [x] Leaner Roots (#992) — clean up, relative URLs, and nice search moved to Soil
    • [x] Update screenshot to 880x660 (maybe just use a blank image)
    • [ ] Merge in @Foxaii's nav rejig
    • [x] Move language files outside repo
    • [x] Add grunt-autoprefixer
    • [ ] Setup dist/ folder?
    • [x] Generate new roots.pot
    • [x] Update CHANGELOG
    • [x] Update README
    • [x] Update roots.io docs

    What's new

    Leaner Roots

    Soil will now be a plugin that contains:

    • Markup changes/clean up
      • wp_head() clean up
      • Remove WP version from RSS feeds
      • Clean up <html> attributes
      • Clean up <link> tags
      • Clean up body_class()
      • Wrap embedded media as suggested by Readability
      • Use <figure> and <figcaption> for WP captions
      • Remove unnecessary dashboard widgets
      • Remove unnecessary self-closing tags
    • Nice search
    • Relative URLs

    The above features will be enabled in Roots (or any other theme) if Soil is activated by using add_theme_support:

    • add_theme_support('soil-clean-up');
    • add_theme_support('soil-nice-search');
    • add_theme_support('soil-root-relative-urls');

    Removed from Roots:

    • lib/cleanup.php - Move roots_get_search_form to lib/utils.php
    • lib/widgets.php - Remove vCard widget, move register sidebars to lib/init.php
    • lib/relative-urls.php

    Bower for front-end package management

    Bower is now being used to pull in Modernizr, jQuery, Bootstrap and Respond to assets/vendor/. Whenever you're adding front-end assets to your project, you can use bower install <package> to add them to the vendor directory.

    We're also now using grunt-modernizr to make a lean build based on what tests you use in your styles and JS.

    If you check out the 7.0.0 branch, run npm install from the theme dir and bower install will run after the node dependencies have been installed.

    LESS organization

    LESS files are organized differently, see #961 for details. tl;dr:

    ├── components
    │   ├── _buttons.less
    │   ├── _forms.less
    │   ├── _media.less
    │   └── _wp-classes.less
    ├── layouts
    │   │── pages
    │   │   └── _home.less
    │   │── _footer.less
    │   │── _general.less
    │   │── _header.less
    │   │── _pages.less
    │   │── _posts.less
    │   └── _sidebar.less
    ├── _bootstrap.less
    ├── _global.less
    ├── _variables.less
    └── main.less
    

    Grunt workflow

    Previously, every time you updated your CSS or JS, a minified files and changes to lib/scripts.php had to be committed to the repo. The repo no longer includes any generated front-end assets. Grunt tasks are now split into two: dev and build.

    The dev task runs JSHint, compiles your LESS (non-minified) and concatenates your JS

    The build task runs JSHint, compiles and minifies your LESS, runs UglifyJS for concatenation and minification, generates a lean Modernizr build, and revisions CSS and JS based on the hashes.

    During build, assets-manifest.json is generated with the names of the revisioned files. lib/scripts.php reads that file and tells WordPress the correct path to the assets.

    Testing

    Check out the 7.0.0 branch and run npm install from the theme directory. If you don't use Bedrock, you'll need to add the following to your wp-config.php:

    define('WP_ENV', 'development');
    

    Grunt tasks:

    • grunt dev
    • grunt watch (same as dev except watches for file changes)
    • grunt build — for staging/production

    Also grab https://github.com/roots/soil's new branch and enable the plugin

    Note: things are subject to change!

    These changes are not yet final. Keep an eye on this PR for updates.

    opened by retlehs 33
  • Remove nav walker and Bootstrap navbar

    Remove nav walker and Bootstrap navbar

    Cleaner walker moved to a Soil module: https://github.com/roots/soil/pull/73 (it no longer includes support for Bootstrap dropdowns)

    Remove the Bootstrap navbar and use a more generic header template (remember, this is a starter theme (and we're becoming framework agnostic))

    image

    opened by retlehs 31
  • Relative URLs breaking CSS & etc.

    Relative URLs breaking CSS & etc.

    When I've moved WP to a remote server (as shown here), put it on an own directory (not on the server root -- eg: http://example.com/wordpress instead of http://example.com) and let this option at config.php enabled:

    add_theme_support('root-relative-urls');
    

    Roots broken CSS, JS and other stuff, such as admin bar. For example, the call to the /wp-includes folder was http://localhost/wp-includes (should point the "wordpress" folder). This bug also have affected bloginfo('template_url') -- the function doesn't display anything. Reactivate Roots didn't work.

    Nevertheless, when I was running WP in my computer, everything was working fine... even with WP on a subdirectory (http://localhost/wordpress).

    BTW, this is a wonderful theme! Nice work! :)

    opened by FSaldanha 30
  • Alternative to get_template_part which allows you to pass data.

    Alternative to get_template_part which allows you to pass data.

    In a lot of my projects I've started using an alternative to get_template_part that allows you to pass data. I'm wondering whether something of this ilk would be good to include with Sage.

    Function

    /**
     * Load a component into a template while supplying data.
     *
     * @param string $slug The slug name for the generic template.
     * @param array $params An associated array of data that will be extracted into the templates scope
     * @param bool $output Whether to output component or return as string.
     * @return string
     */
    function get_component($slug, array $params = array(), $output = true) {
        if(!$output) ob_start();
        $template_file = locate_template("components/{$slug}.php", false, false);
        extract($params, EXTR_SKIP);
        require($template_file);
        if(!$output) return ob_get_clean();
    }
    
    views enhancement 
    opened by christianmagill 28
  • chore(deps): ⬆️ bump aglipanci/laravel-pint-action action to v2

    chore(deps): ⬆️ bump aglipanci/laravel-pint-action action to v2

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | aglipanci/laravel-pint-action | action | major | 1.0.0 -> 2.1.0 |


    Release Notes

    aglipanci/laravel-pint-action

    v2.1.0

    Compare Source

    Fixing https://github.com/aglipanci/laravel-pint-action/issues/1.

    v2.0.0

    Compare Source

    Adding the ability to specify the Pint version on the configuration file.


    Configuration

    📅 Schedule: Branch creation - "before 3am on Monday" in timezone America/Chicago, Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Bug: additional `<nav>` elements in partials need accessible names

    Bug: additional `

    Terms

    Description

    What's wrong?

    The following <nav> elements need accessible names (i.e. can be set with aria-label or aria-labelledby).

    Possible solutions

    Use aria-label to set accessible names for these regions. Do not use the word “navigation” in the name (it’s redundant).

    References

    • https://w3c.github.io/aria-practices/#aria_lh_navigation
    • https://www.scottohara.me/blog/2018/03/03/landmarks.html#navigation

    Steps To Reproduce

    1. This is the current state of the templates.

    Expected Behavior

    When there’s more than one navigation region on a page, they should have accessible names to distinguish them from each other.

    Actual Behavior

    These unnamed navigation regions might appear more prominent than they should be.

    Relevant Log Output

    No response

    Versions

    HEAD

    bug enhancement 
    opened by knowler 0
  • :wrench: Wait for CSS to be loaded before init JS

    :wrench: Wait for CSS to be loaded before init JS

    In development, CSS is injected and not included via a file. To be able to use correctly some JS functions that depend on style (el.scrollWidth, etc.), we have to wait until the CSS is injected and parsed.

    javascript 
    opened by Striffly 0
  • Add .env to set proxy used in bud config

    Add .env to set proxy used in bud config

    Some development environments such as Valet use .test, but some others such as Localwp use .local Adding an .env file to set the proxy to use in bud config can be helpful when working with other developers who using different development environments.

    opened by budimanfajarf 0
  • 🔧 Acorn v3 (Laravel 9.x), drop PHP 7.4 support

    🔧 Acorn v3 (Laravel 9.x), drop PHP 7.4 support

    These changes are required to upgrade to Acorn v3

    TODOs

    • [ ] Acorn v3 stable release
    • [ ] Upgrade docs (https://github.com/roots/docs/issues/433)
    • [ ] bud.sage.setAcornVersion('v3')

    Ref https://github.com/roots/acorn/releases Ref https://bud.js.org/releases/6.6.0/#rootssage

    php 
    opened by retlehs 4
  • Replace the yarn pot command by the one recommended in the docs

    Replace the yarn pot command by the one recommended in the docs

    The yarn command was not able to really create a complete pot file. Most strings from the Blade templates were missing. With this command, it seems to be working as it should be.

    I found the command in the docs https://docs.roots.io/sage/10.x/localization/#generating-language-files

    I removed the previous command to avoid any misunderstanding.

    opened by bonakor 3
Releases(v10.3.1)
  • v10.3.1(Oct 4, 2022)

  • v10.3.0(Sep 28, 2022)

    theme.json is now generated from bud.config.js (https://github.com/roots/sage/pull/2999)

    https://user-images.githubusercontent.com/115911/192853966-5c08100c-0c8c-4209-90ee-553ad838e8fb.mp4

    Full Changelog: https://github.com/roots/sage/compare/v10.2.0...v10.3.0

    Source code(tar.gz)
    Source code(zip)
  • v10.2.0(Jul 19, 2022)

    Overview

    ⚠️ Sage now requires you to define the publicPath in the Bud config

    :tada: Bud has been upgraded to v6.x! See the Bud announcement for more details

    All changes

    • 🔧 bud config: set the public path by default by @retlehs in https://github.com/roots/sage/pull/3064
    • 📦 improve(patch): [email protected] by @kellymears in https://github.com/roots/sage/pull/3074
    • chore(lint): run pint by @Log1x in https://github.com/roots/sage/pull/3075
    • Bump actions/cache action to v3 by @renovate in https://github.com/roots/sage/pull/3066
    • Bump actions/checkout action to v3 by @renovate in https://github.com/roots/sage/pull/3072
    • Bump actions/labeler action to v4 by @renovate in https://github.com/roots/sage/pull/3073
    • Pin 📦 update squizlabs/php_codesniffer to 3.7.1 by @renovate in https://github.com/roots/sage/pull/3065
    • Bump Bud to v6.3.3 by @renovate in https://github.com/roots/sage/pull/3080

    Full Changelog: https://github.com/roots/sage/compare/v10.1.7...v10.2.0

    Source code(tar.gz)
    Source code(zip)
  • v10.1.7(May 31, 2022)

    What's Changed

    • 🔧 Add index.php to tailwindcss purge list by @gabrielgiordan in https://github.com/roots/sage/pull/3025
    • 🔧 Improve translation scripts by @strarsis in https://github.com/roots/sage/pull/3013
    • 🎨 Add trailing commas by @joshuafredrickson in https://github.com/roots/sage/pull/3032
    • 🐛 Fix i18n warnings by @strarsis in https://github.com/roots/sage/pull/3039
    • 👷 dependabot --> renovate by @kellymears in https://github.com/roots/sage/pull/3060
    • ⬆️ Bump bud to v5.8.7 by @renovate in https://github.com/roots/sage/pull/3063

    New Contributors

    • @gabrielgiordan made their first contribution in https://github.com/roots/sage/pull/3025

    Full Changelog: https://github.com/roots/sage/compare/v10.1.6...v10.1.7

    Source code(tar.gz)
    Source code(zip)
  • v10.1.6(Mar 31, 2022)

  • v10.1.5(Mar 29, 2022)

  • v10.1.4(Mar 27, 2022)

  • v10.1.3(Mar 25, 2022)

  • v10.1.2(Mar 17, 2022)

    What's Changed

    • ⬆️ bud v5.6.2 (#3012)
    • 🔥 remove add_theme_support('align-wide') (#3008)

    Full Changelog: https://github.com/roots/sage/compare/v10.1.1...v10.1.2

    Source code(tar.gz)
    Source code(zip)
  • v10.1.1(Mar 9, 2022)

    What's Changed

    • 🔥 remove default palette + gradients from theme.json by @mike-sheppard in https://github.com/roots/sage/pull/3002

    New Contributors 💜

    • @mike-sheppard made their first contribution in https://github.com/roots/sage/pull/3002

    Full Changelog: https://github.com/roots/sage/compare/v10.1.0...v10.1.1

    Source code(tar.gz)
    Source code(zip)
  • v10.1.0(Mar 8, 2022)

    🌱 Join us on Roots Discourse to discuss the Sage v10.1.0 release

    What's Changed

    • ⬆️ bud v5.5.0 by @kellymears in https://github.com/roots/sage/pull/2997
    • 🔥 improve: no need to watch tailwind.config.js by @kellymears in https://github.com/roots/sage/pull/3000
    • 🔥 remove linting by @kellymears in https://github.com/roots/sage/pull/2998
    • 🔥 chore(deps): Remove deprecated variant configuration from tailwind config by @Log1x in https://github.com/roots/sage/pull/2994

    Full Changelog: https://github.com/roots/sage/compare/v10.0.0...v10.1.0

    Source code(tar.gz)
    Source code(zip)
  • v10.0.0(Mar 1, 2022)

    📣 Read our announcement on the Roots blog

    🌱 Join us on Roots Discourse to discuss the Sage 10 release

    Highlights

    • Sage 10 requires Acorn — it allows us to use Laravel Blade templates along with Laravel Components, Composers, and more
    • Tailwind CSS is included and we've left you with a clean slate to start styling your site
    • Bud is our new build tool and responsible for building assets in Sage 10

    Additional changes

    • theme.json is used for global editor settings
    • jQuery has been removed
    • All base styles have been removed
    • Customizer starter has been removed
    • Core theme files are back in the theme root (index.php, functions.php) for better plugin & child theme compatibility

    Thank you

    Thank you to everyone who contributed code and docs towards Sage 10, Acorn, and Bud:

    @Akiletour, @alwaysblank, @aplr, @austinpray, @clayrisser, @dsturm, @gandalfar, @greghunt, @huubl, @joshuafredrickson, @kellymears, @kingkero, @knowler, @LeoColomb, @mallardduck, @MWDelaney, @ouun, @oxyc, @plumthedev, @pxlrbt, @SergiArias, @simonhammes, @stefanfisk, @strarsis, @TangRufus, @tdinia, @theMosaad, @tylerwiegand, @valeravilks, @wolfgangschaefer


    Changelogs:

    Source code(tar.gz)
    Source code(zip)
  • 10.0.0-beta.3(Feb 14, 2022)

    🌱 Join us on Roots Discourse to discuss the Sage 10.0.0-beta.3 release

    What's new

    Acorn has been removed as a dependency in Sage's composer.json. We recommend installing Acorn from Bedrock's composer.json, or as a mu-plugin in non-Bedrock environments. Acorn is still required in order to use Sage, and Sage will exit immediately with an error if Acorn isn't available. We've also removed the config and bootstrap directories from Sage, and default to a zero-config setup.

    See the Acorn installation and zero-config docs for more details.

    Bud has shipped several releases since being included in beta 2, in which many bug fixes, performance improvements, and developer experience improvements have landed.

    https://user-images.githubusercontent.com/115911/153884517-4dbab731-3122-4be9-aed5-b8cbd514cebd.mp4

    Sage has moved the global editor settings from setup.php into theme.json and now requires WordPress 5.9+.

    Changes

    • migrate global settings to theme.json (#2964) @retlehs
    • Re-add i18n related scripts/tasks (#2958) @strarsis
    • chore(header): allow unescaped siteName data (#2967) @Akiletour
    • Switch to zero-config setup, remove config and bootstrap directories (#2839) @retlehs @QWp6t
    • chore: remove helpers.php (#2917) @Log1x
    • refactor: remove JavaScript detection (#2916) @knowler
    • chore(php): bump minimum PHP version to 7.4 (#2925) @knowler
    • enhance(views): Move page section views to a sections directory (#2936) @retlehs @Log1x
    • feat(search): use a button element (#2943) @knowler

    Fixes

    • fix(views): Use dot notation on entry-meta view includes (#2941) @Log1x
    • fix: app/setup.php doesn’t need to be executable (#2933) @knowler
    • fix(bundle-editor): remove @wordpress/edit-post (#2932) @retlehs

    Full Changelog: https://github.com/roots/sage/compare/10.0.0-beta.2...10.0.0-beta.3

    Sage 10.0.0-beta.3 contributors: @retlehs @QWp6t @Log1x @knowler @simonhammes @kellymears @Akiletour @strarsis @alwaysblank

    Source code(tar.gz)
    Source code(zip)
  • 10.0.0-beta.2(Dec 21, 2021)

    🌱 Join us on Roots Discourse to discuss the Sage 10.0.0-beta.2 release

    What's changed

    Major changes

    • Tailwind CSS v3.0 (#2882)
    • Replace Laravel Mix with Bud ⚡ (#2643)

    Additional changes

    • Remove customizer starter (#2904)
    • Move compiled views back to cache dir by default (#2837)
    • chore(theme): misc cleanup (#2862)
    • Remove all base styles (#2889)
    • Remove all base styles followup (#2900)
    • feat(theme-wrapper): remove shrink-to-fit=no (#2870)
    • fix(lint): Add additional known at-rules (#2811)
    • chore(deps): Bump roots/acorn to v2.0.0-beta.6 (#2911)

    Sage 10.0.0-beta.2 contributors: @retlehs @kellymears @QWp6t @knowler @joshuafredrickson

    Full Changelog: https://github.com/roots/sage/compare/10.0.0-beta.1...10.0.0-beta.2

    Source code(tar.gz)
    Source code(zip)
  • 10.0.0-beta.1(Oct 21, 2021)

    What's changed

    Major changes

    • feat(assets): Change default CSS framework to Tailwind
    • feat(deps): Sunset sage-lib and transition over to Acorn. (#2122)
    • feat(view): Implement Blade Composers – a native, robust, more powerful solution to "Controllers" used in Sage 9.
    • feat(assets): Change asset build system to Laravel Mix. (#2172)

    Additional changes

    • enhance(assets): Refactor and simplify the stylesheet and script stubs.
    • enhance(assets): Shorter pattern for purge files (#2722)
    • enhance(blocks): Implement block editor support.
    • enhance(ci): Change from CircleCI to GitHub actions
    • enhance(filters): Remove required template filters from the theme as they are now handled automatically by Acorn.
    • enhance(functions): Improve the functions.php autoloader implementation.
    • enhance(handler): Implement Whoops support for better error handling during development.
    • enhance(theme): Add theme support for custom-line-height
    • enhance(theme): Add theme support for custom-units
    • enhance(theme): Add theme support for editor-gradient-presets, editor-font-sizes, disable-custom-colors, disable-custom-gradients, disable-custom-font-sizes, custom-spacing
    • enhance(theme): Disable full-site editing support (#2692)
    • enhance(theme): Implement necessary starter project boilerplate for Acorn.
    • enhance(theme): Move core theme files back to the theme root (index.php, functions.php, etc.) for better plugin & child theme compatibility.
    • enhance(theme): Remove theme support for default block patterns
    • enhance(theme): Restructure project directories to mirror Laravel for use with Acorn.
    • enhance(view): Add "skip to content" link (#2622)
    • enhance(view): Improve the readability and syntax of the default Blade views.
    • chore(config-log): use generic application.log
    • chore(deps): Bump dependencies including Bootstrap, jQuery, etc.
    • chore(deps): Bump PHP requirement to 7.2.5.
    • chore(deps): Bump WordPress requirement to 5.2.
    • chore(deps): optimize tailwind's purgecss dirs
    • chore(deps): Update config files to reflect Acorn.
    • chore(theme): Fix docblock link
    • chore(theme): Move custom-spacing up for visibility
    • chore(theme): Remove specificity from custom-units theme support
    • chore(theme): Remove various configuration files that are no longer in use.
    • chore(theme): Reorder actions inside of the after_setup_theme hook by usefulness
    • fix(assets): use PhpAsset::load()
    • fix(bootstrap): use static bootloader to prevent rebooting
    • fix(composer): use proper wp cli command name (#2636)
    • fix(config-view): use acorn helper functions
    • fix(deps): Remove wildcards from .copyDirectory() in webpack.mix.js
    • Fix/add translators comment (#2716)
    • Make jQuery 3.5.1 a peer dependency (#2721)
    • Remove deprecated jQuery .ready() syntax (#2738)
    • Remove redundant x-ua-compatible meta tag (#2742)
    • Use menu name as accessible name of <nav> (#2814)
    • Enable Webpack 5's automatic unique naming (#2745)

    Sage 10.0.0-beta.1 contributors: @Log1x @retlehs @QWp6t @TangRufus @knowler @dsturm @huubl @joshuafredrickson @strarsis @greghunt

    Source code(tar.gz)
    Source code(zip)
  • 9.0.10(Nov 10, 2020)

  • 9.0.9(Feb 14, 2019)

  • 9.0.8(Feb 12, 2019)

  • 8.6.0(Jan 23, 2019)

  • 9.0.7(Dec 28, 2018)

  • 9.0.6(Dec 21, 2018)

  • 9.0.5(Sep 17, 2018)

  • 9.0.4(Sep 7, 2018)

  • 9.0.3(Sep 7, 2018)

  • 9.0.2(Aug 21, 2018)

    • Update to Bootstrap 4.1.3 (#2097)
    • Comments template fix (#2095)
    • UglifyJs: Change the ecma option from 8 to 5 (#2092)
    • Add searchform partial and function to replace default WordPress functionality (#2090)
    • Change language_attributes() to get_language_attributes() (#2089)
    • Fix missing comment-reply JS (#2085)
    • Use better merge method for Webpack Preset config (#2084)
    • Add support for preset specific Webpack config (#2083)
    • Enable Sass comments and run prefixing before minification (#2078)
    • Set removeViewBox to 'false' in webpack's optimization settings (#2075)
    • Add uglifyjs plugin (#2070)
    • Make template() compatible with wp admin (#2068)
    • Upgrade to Controller 2.1.0 (#2025)
    Source code(tar.gz)
    Source code(zip)
  • 9.0.1(Apr 30, 2018)

  • 8.5.3(Aug 18, 2017)

  • 8.5.2(Aug 14, 2017)

Owner
Roots
Tools for modern WordPress development
Roots
An example starter theme and block-type plugin that use @wordpress/scripts for JS & CSS

Brad’s Boilerplate This repo contains one folder that is an example theme, and another folder that is an example block-type plugin. Both folders use t

Brad Schiff 185 Dec 26, 2022
Bedrock is a modern WordPress stack that helps you get started with the best development tools and project structure.

WordPress boilerplate with modern development tools, easier configuration, and an improved folder structure

Roots 5.7k Jan 9, 2023
A minimal boilerplate theme for WordPress using TailwindCSS, with PostCSS and Laravel Mix.

A minimal boilerplate theme for WordPress using TailwindCSS, with PostCSS and Laravel Mix.

Pixel Devs 74 Nov 25, 2022
This is a white minimal wordpress theme

_s Hi. I'm a starter theme called _s, or underscores, if you like. I'm a theme meant for hacking so don't use me as a Parent Theme. Instead try turnin

Mahmud Hasan Imran 3 Oct 7, 2021
A WordPress theme.json generator from a PHP array

ItalyStrap Theme Json Generator WordPress Theme Json Generator the OOP way This is a WIP project and still experimental. The idea is to generate a fil

null 19 Sep 15, 2022
DaybydayCRM an open-source CRM, to help you keep track of your daily workflow.

====================== DaybydayCRM is an everyday customer relationship management system (CRM) to help you keep track of your customers, tasks, appoi

Casper Bottelet 2.1k Dec 30, 2022
L'Air du Bois is a Community Driven Woodworkers Sharing Platform.

L'Air du Bois is a Community Driven Woodworkers Sharing Platform.

L'Air du Bois 215 Dec 14, 2022
Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS

Grav Grav is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are alr

Grav 13.6k Jan 4, 2023
Luminosity - A modern style blogging platform

Luminosity The Complete Modern Blogging Platform This branch is currently hosted. Refer to Local Branch to setup locally Features Features: Read Artic

cmd3BOT 20 Nov 19, 2022
Modern CMS with shop features based on fullstack symfony and sylius components

The enhavo CMS is a open source PHP project on top of the fullstack Symfony framework and uses awesome Sylius components to serve a very flexible soft

enhavo 80 Dec 14, 2022
Azuriom is a modern, reliable, fast and secure game CMS.

Azuriom Azuriom is the next generation game CMS, it's free and open-source, and is a modern, reliable, fast and secure alternative to existing CMS so

Azuriom 359 Jan 4, 2023
Bolt CMS is an open source, adaptable platform for building and running modern websites.

Bolt CMS is an open source, adaptable platform for building and running modern websites. Built on PHP, Symfony and more. Read the site for more info.

Bolt 437 Jan 4, 2023
Monstra is a modern and lightweight Content Management System.

Monstra is a modern and lightweight Content Management System.

Monstra Content Management 398 Dec 11, 2022
🚀Bolt CMS is an open source, adaptable platform for building and running modern websites

??Bolt CMS is an open source, adaptable platform for building and running modern websites

Bolt 32 Dec 3, 2022
Azuriom - a modern, reliable, fast and secure game CMS.

Azuriom is the next generation game CMS, it's free and open-source, and is a modern, reliable, fast and secure alternative to existing CMS so you can have the best web experience possible.

Azuriom 281 May 5, 2022
True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

null 4 Oct 28, 2022
Basic Bedrock Theme for Concrete CMS

Basic Bedrock Theme Package for Concrete CMS v9 Basic Bedrock Theme Package for Concrete CMS v9 Concrete CMS Bedrock Documentation Description Persona

David 11 Nov 27, 2022
(Hard) Fork of WordPress Plugin Boilerplate, actively taking PRs and actively maintained. Following WordPress Coding Standards. With more features than the original.

Better WordPress Plugin Boilerplate This is a Hard Fork of the original WordPress Plugin Boilerplate. The Better WordPress Plugin Boilerplate actively

Beda Schmid 46 Dec 7, 2022
Make development easier with IDE helpers for Winter CMS!

IDE Helpers This plugin adds barryvdh/ide-helpers package to October for better IDE support. Installation git clone into /plugins/flynsarmy/idehelper

null 4 Dec 11, 2021