Why Create Subtheme in drupal 8 ,
If you directly change on main theme and update the new version then all the changes would be lost.YAML file structure
1 - Tabs are NOT allowed. Use spaces ONLY.
2 - Properties and lists MUST be indented by two (2) spaces
let theme name is fullfillness
What are the files needed to create a theme
1 - .info.yml
2 - .libraries.yml
3 - .breakpoints.yml
4 - .theme
- create fullfillness.info.yml
- if theme has space then, replace the underscore with space in file name and folder name- minimum required properties (name, type, and core)
key value pair in the info.yml file
libraries (optional)
A list of libraries (which can contain both CSS and JavaScript assets) to add to all pages where the theme is active. Read more about themes and asset libraries.libraries:
- fluffiness/global-styling
libraries-override (optional)
A collection of libraries and assets to override. Read more at Overriding and extending libraries.libraries-override:
contextual/drupal.contextual-links:
css:
component:
/core/themes/stable/css/contextual/contextual.module.css: false
libraries-extend (optional)
A collection of libraries and assets to add whenever a library is attached. Read more at Overriding and extending libraries.libraries-extend:
core/drupal.user:
- classy/user1
- classy/user2
hidden (optional)
Indicates whether or not to hide the theme from the "Appearance" page so that it cannot be enabled/disabled via the UI.hidden: true
regions (optional)
A list of theme regions. (Note that region keys are not preceded by a dash.) A content region is required. Read more about adding regions to a theme.regions:
header: Header
content: Content
sidebar_first: 'First sidebar'
regions_hidden (optional)
A list of inherited regions to remove.regions_hidden:
- sidebar_last
Adding stylesheets (CSS) and JavaScript (JS) to a Drupal 8 theme :
1 - By adding libraries , ( create the fluffiness.libraries.yml ) and add the css/js
cuddly-slider:
version: 1.x
css:
theme:
css/cuddly-slider.css: {}
js:
js/cuddly-slider.js: {}
Attaching a library via a Twig template :
{{ attach_library('fluffiness/cuddly-slider') }}
In Drupal 8 drupal_add_css(), drupal_add_js() and drupal_add_library() were removed in favor of #attached
Attaching a library to a subset of pages :
Implement the preprocess function to attach the libraryfunction fluffiness_preprocess_maintenance_page(&$variables) {
$variables['#attached']['library'][] = 'fluffiness/cuddly-slider';
}
fullfillness.Breakpoint.yml :
Breakpoints are really just media queries with some additional metadata, such as name and multiplier information.label - A human readable label for the breakpoint.
mediaQuery - Media query text proper, e.g. 'all and (min-width: 851px)'.
weight - Positional weight (order) for the breakpoint.
multipliers - Supported pixel resolution multipliers.
bartik.mobile:
label: mobile
mediaQuery: ''
weight: 0
multipliers:
- 1x
Comments
Post a Comment