• hebhansen

    (@hebhansen)


    Hi

    I have created a child theme for TT4 and WP 6.6. Styles seems to take no effect. Here is the sheet as is now:

    /*
    Theme Name: Draupnir 9
    Theme URI:
    Author: Me
    Author URI: https://me.com
    Description: Draupnir 9 is a child theme of Twenty Twenty-Four and is designed to be flexible, versatile and applicable to any website for present and future WP themes. The collection of templates and patterns include original default from WP as well as custom tailored to different needs, such as presenting a business, blogging, multi vendor representation and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Draupnir 9 comes with custom style variations and full page designs in addition to default WP, is fully compatible with the site editor, and takes advantage of new design tools introduced by WordPress.
    Requires at least: 6.6
    Tested up to: 6.6
    Requires PHP: 8.0
    Version: 1.0
    License:
    License URI: https://me.com
    Template: twentytwentyfour
    Text Domain: draupnir-9
    Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news, multi-vendor, woocommerse, ecommerce
    */

    .i-have-a-red-background {
    color: white !important;
    background: red !important;
    }

    I have tried adding the class (no dot) in settings > additional css for various blocks to no effect. W/WO !important makes no difference.

    I understand TT4 does not call a style.css, so I have placed this in child functions.php. Am I completely in the woods here? As I understand, this is the snippet if child theme is the theme and I call style.css wihtin the child.

    add_action( 'wp_enqueue_scripts', 'draupnir_9_enqueue_styles' );

    function draupnir_9_enqueue_styles() {
    wp_enqueue_style(
    'draupnir-9-style',
    get_stylesheet_uri()
    );
    }

    Thx

    • This topic was modified 4 weeks ago by hebhansen.
Viewing 15 replies - 1 through 15 (of 22 total)
  • threadi

    (@threadi)

    Yes, the style.css is only used to provide the meta information for block themes. Styles contained in it are ignored. You have already correctly recognized that you have to integrate your own CSS file in your child theme separately via euqueue.

    Please note that you must also include the file via https://developer.www.ads-software.com/reference/hooks/enqueue_block_editor_assets/ if it is to be loaded in the editor.

    Thread Starter hebhansen

    (@hebhansen)

    So when I do integrate my css, should the styling not take effect?

    The link I do not understand. Do you mean add this “.wp-block-” in front to appear in editor settings? Ok but I can’t even get my variables (styles) to work in the first place. To create this: var(–wp–preset–color–mick-jagger-black), what exactly do I do?

    theme.json child. Add what where? styles? other. Yes I read all the manuals. I don’t get it. I need an example explained.

    And when are square brackets used? When are curly used?

    {
    "$schema": "https://schemas.wp.org/wp/6.6/theme.json",
    "version": 3, Can I have 3 here, while tt4 is version 2?
    "patterns": [], why is this square?
    "settings": { These are block settings in editor, correct? So where does “.wp-block-” apply?
    "color": {
    "palette": [
    {
    "name": "Black",
    "slug": "black",
    "color": "#000000"
    },
    {
    "name": "White",
    "slug": "white",
    "color": "#ffffff"
    },
    {
    "name": "Draupnir 8", These colors are not showing anywhere! why?
    "slug": "draupnir-8",
    "color": "#171717"
    },
    {
    "name": "Draupnir 9",
    "slug": "draupnir-9",
    "color": "#ae1100"
    }
    ]
    }
    }
    "styles": { So here is styles! Is this where my variables go
    "blocks": {
    "core/button": {
    "variations": {
    "outline": {
    "spacing": {
    "padding": {
    "bottom": "calc(0.6rem - 1px)",
    "left": "calc(1rem - 1px)",
    "right": "calc(1rem - 1px)",
    "top": "calc(0.6rem - 1px)"
    }
    },
    "border": {
    "width": "1px"
    }
    }
    }
    },
    "core/buttons": {
    "spacing": {
    "blockGap": "0.7rem"
    }
    },
    "core/search": {
    "css": "& .wp-block-search__input{border-radius:.33rem}",
    "typography": {
    "fontSize": "var(--wp--preset--font-size--small)"
    },
    "elements": {
    "button": {
    "border": {
    "radius": { "ref": "styles.elements.button.border.radius" }
    }
    }
    }
    },
    "color": {}, Does color variables go here. If so what is the code structure to create "mick-jagger-black?" that I can call in css as var(--wp--preset--color--mick-jagger-black).

    Thx

    Thread Starter hebhansen

    (@hebhansen)

    @threadi Does this look correct?

    add_action( 'wp_enqueue_scripts', 'draupnir_9_enqueue_styles' );

    function draupnir_9_enqueue_styles() {
    wp_enqueue_style(
    'draupnir-9-style',
    get_stylesheet_uri()
    );
    }

    do_action( 'enqueue_block_editor_assets' );
    Thread Starter hebhansen

    (@hebhansen)

    Apparently not. That last line crashed my site, so what should it look like?

    You should not execute WordPress hooks yourself using do_action(). The link above contains an example of how to use it in the comments. In your case, it should look like this:

    add_action( 'enqueue_block_editor_assets', 'draupnir_9_enqueue_styles' );

    function draupnir_9_enqueue_styles() {
    wp_enqueue_style(
    'draupnir-9-style',
    get_stylesheet_uri()
    );
    }
    Thread Starter hebhansen

    (@hebhansen)

    @threadi So I need both of these? One displays style.css stuff on the frontend and the other in the editor?:

    add_action( 'wp_enqueue_scripts', 'draupnir_9_enqueue_styles' );

    function draupnir_9_enqueue_styles() {
    wp_enqueue_style(
    'draupnir-9-style',
    get_stylesheet_uri()
    );
    }

    add_action( 'enqueue_block_editor_assets', 'draupnir_9_enqueue_styles' );

    function draupnir_9_enqueue_styles() {
    wp_enqueue_style(
    'draupnir-9-style',
    get_stylesheet_uri()
    );
    }
    Thread Starter hebhansen

    (@hebhansen)

    Both crashed my site. So now I have only the latest you sent. Correct?

    It doesn’t work if you use the same function name twice. And yes, if you want to use the style for editor AND frontend, you have to include the function twice:

    add_action( 'wp_enqueue_scripts', 'draupnir_9_enqueue_styles' );
    add_action( 'enqueue_block_editor_assets', 'draupnir_9_enqueue_styles' );

    function draupnir_9_enqueue_styles() {
    wp_enqueue_style(
    'draupnir-9-style',
    get_stylesheet_uri()
    );
    }
    Thread Starter hebhansen

    (@hebhansen)

    @threadi Thx Threadi

    That hopefully works. I will do some testing later today. For now I am marking as resolved. Thx

    Thread Starter hebhansen

    (@hebhansen)

    @threadi I’m back

    style.css still takes no effect. I am adding non supported styling in theme.json to styles.css. The below does not show. When moving this to code snippets it works. So why is style.css not working. Your code above is in functions.php

    /*************************************************************************************************/
    /************************************* Draupnir 9 - Child Theme **********************************/
    /************** Fallback CSS - Some of this will eventually move into theme.json *****************/
    /*************************************************************************************************/

    /****************************************************************/
    /******************* New Funky Forms - Global *******************/
    /****************************************************************/


    /************* Forms Text Shadows - No support in version 3 *****************/
    .wp-element-button,
    .wp-block-button__link {
    text-shadow: 1px 1px 1px var(--wp--preset--color--base-2);
    color: red;
    }

    threadi

    (@threadi)

    Yes, no style.css is addressed there either. Only the path to your theme. I had taken this from your code on the assumption that you didn’t want to show the rest of the path. Correct would be

    wp_enqueue_style(
    'draupnir-9-style',
    get_stylesheet_uri() . '/style.css'
    );

    If the file style.css is located in the root directory of your theme.

    Please also take a look at the manual to reference the file: https://developer.www.ads-software.com/reference/functions/wp_enqueue_style/

    Thread Starter hebhansen

    (@hebhansen)

    So something like this? It’s in root of child theme. I see before this addition that effect is there on site 2, 3 etc but not on main site…. This is incredibly confusing…? Anyways is this code exactly what I need?

    add_action( 'wp_enqueue_scripts', 'draupnir_9_enqueue_styles' );
    add_action( 'enqueue_block_editor_assets', 'draupnir_9_enqueue_styles' );

    function draupnir_9_enqueue_styles() {
    wp_enqueue_style(
    'draupnir-9-style',
    get_stylesheet_uri() . '/style.css'
    );
    }
    threadi

    (@threadi)

    Yes, you must enter the exact URL path to the file here. It is best to check your browser’s developer tool to see if the file is loaded. This way you can quickly identify any problems with the integration.

    Thread Starter hebhansen

    (@hebhansen)

    I can confirm css is still not working. I resides in root of child theme. Not parent theme…

    threadi

    (@threadi)

    Then use the function: https://developer.www.ads-software.com/reference/functions/get_stylesheet_directory_uri/ – this should return the URL of the child theme. As already mentioned, you can see whether it fits in the developer tools of your browser.

Viewing 15 replies - 1 through 15 (of 22 total)
  • You must be logged in to reply to this topic.