commit 61ce6fca2d017f3d6a20be4f6e729c47ff56ba89 Author: benjamin melançon Date: Sat Apr 20 14:40:26 2024 -0400 Initial commit after running Zurb Foundation subtheme from STARTER script diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..fbb903a --- /dev/null +++ b/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": [ "@babel/preset-env" ], + "compact": false +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7909990 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# treat sourcemaps as binary file, since we don't care about their diff. +css/*.css.map binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/.sass-lint.yml b/.sass-lint.yml new file mode 100644 index 0000000..8038557 --- /dev/null +++ b/.sass-lint.yml @@ -0,0 +1,338 @@ +# Note: This is not directly taken from the sass-lint from zurb foundation code: +# https://github.com/zurb/foundation-sites/blob/develop/.scss-lint.yml +# This should align as closely as possible with Drupal code standards: +# https://www.drupal.org/docs/develop/standards/css/csscomb-settings-for-drupal-css-formatting-and-sort-tool + +options: + formatter: stylish +files: + include: 'scss/**/*.scss' +rules: + # Extends + extends-before-mixins: 1 + extends-before-declarations: 1 + placeholder-in-extend: 1 + + # Mixins + mixins-before-declarations: 1 + + # Line Spacing + one-declaration-per-line: 1 + empty-line-between-blocks: 1 + single-line-per-selector: 1 + + # Disallows + no-attribute-selectors: 0 + no-color-hex: 0 + no-color-keywords: 1 + no-color-literals: 1 + no-combinators: 0 + no-css-comments: 0 + no-debug: 1 + no-disallowed-properties: 0 + no-duplicate-properties: 0 + no-empty-rulesets: 1 + no-extends: 0 + no-ids: 0 + no-important: 1 + no-invalid-hex: 1 + no-mergeable-selectors: 1 + no-misspelled-properties: 1 + no-qualifying-elements: 1 + no-trailing-whitespace: 1 + no-trailing-zero: 1 + no-transition-all: 1 + no-universal-selectors: 0 + no-url-domains: 1 + no-url-protocols: 1 + no-vendor-prefixes: 0 + no-warn: 1 + property-units: 0 + + # Nesting + declarations-before-nesting: 1 + force-attribute-nesting: 1 + force-element-nesting: 1 + force-pseudo-nesting: 1 + + # Name Formats + class-name-format: + - 1 + - convention: hyphenatedbem + function-name-format: 1 + id-name-format: 0 + mixin-name-format: 1 + placeholder-name-format: 1 + variable-name-format: 1 + + # Style Guide + attribute-quotes: 1 + bem-depth: 0 + border-zero: 1 + brace-style: 1 + clean-import-paths: 1 + empty-args: 1 + hex-length: 1 + hex-notation: 1 + indentation: 1 + leading-zero: 1 + max-line-length: 0 + max-file-line-count: 0 + nesting-depth: 1 + property-sort-order: + - 1 + - + ignore-custom-properties: true + order: + # Specific - CSS property order + # https://www.drupal.org/docs/develop/standards/css/csscomb-settings-for-drupal-css-formatting-and-sort-tool + - '$charset' + - '$import' + - '$namespace' + - '$extend' + - '$variable' + - '$include' + + # Position + - 'position' + - 'z-index' + - 'top' + - 'right' + - 'bottom' + - 'left' + + # Disposition + - 'display' + + - 'flex' + - 'flex-basis' + - 'flex-direction' + - 'flex-flow' + - 'flex-grow' + - 'flex-shrink' + - 'flex-wrap' + - 'justify-content' + - 'order' + + - 'box-align' + - 'box-flex' + - 'box-orient' + - 'box-pack' + + - 'align-content' + - 'align-items' + - 'align-self' + + - 'columns' + - 'column-gap' + - 'column-fill' + - 'column-rule' + - 'column-span' + - 'column-count' + - 'column-width' + + - 'vertical-align' + - 'float' + - 'clear' + + # Dimension + - 'box-sizing' + + - 'width' + - 'min-width' + - 'max-width' + + - 'height' + - 'min-height' + - 'max-height' + + - 'margin' + - 'margin-top' + - 'margin-right' + - 'margin-bottom' + - 'margin-left' + - 'margin-collapse' + - 'margin-top-collapse' + - 'margin-right-collapse' + - 'margin-bottom-collapse' + - 'margin-left-collapse' + + - 'padding' + - 'padding-top' + - 'padding-right' + - 'padding-bottom' + - 'padding-left' + + + # Global appearance + - 'appearance' + - 'opacity' + - 'filter' + - 'visibility' + + - 'size' + - 'resize' + - 'zoom' + + - 'transform' + - 'transform-box' + - 'transform-origin' + - 'transform-style' + + # Border + - 'outline' + - 'outline-color' + - 'outline-offset' + - 'outline-style' + - 'outline-width' + + - 'border' + - 'border-top' + - 'border-right' + - 'border-bottom' + - 'border-left' + - 'border-width' + - 'border-top-width' + - 'border-right-width' + - 'border-bottom-width' + - 'border-left-width' + + - 'border-style' + - 'border-top-style' + - 'border-right-style' + - 'border-bottom-style' + - 'border-left-style' + + - 'border-radius' + - 'border-top-left-radius' + - 'border-top-right-radius' + - 'border-bottom-right-radius' + - 'border-bottom-left-radius' + - 'border-radius-topleft' + - 'border-radius-topright' + - 'border-radius-bottomright' + - 'border-radius-bottomleft' + + - 'border-color' + - 'border-top-color' + - 'border-right-color' + - 'border-bottom-color' + - 'border-left-color' + + - 'border-collapse' + - 'border-spacing' + + # Background + - 'background' + - 'background-image' + - 'background-color' + - 'background-attachment' + - 'background-clip' + - 'background-origin' + - 'background-position' + - 'background-repeat' + - 'background-size' + + # Shadow + - 'box-shadow' + + # Animation + - 'animation' + - 'animation-delay' + - 'animation-duration' + - 'animation-iteration-count' + - 'animation-name' + - 'animation-play-state' + - 'animation-timing-function' + - 'animation-fill-mode' + + - 'transition' + - 'transition-delay' + - 'transition-duration' + - 'transition-property' + - 'transition-timing-function' + + + # Content + - 'content' + + - 'list-style' + - 'list-style-image' + - 'list-style-position' + - 'list-style-type' + + - 'overflow' + - 'overflow-x' + - 'overflow-y' + - 'clip' + + # Text + - 'font' + - 'font-family' + - 'font-size' + - 'font-smoothing' + - 'osx-font-smoothing' + - 'font-style' + - 'font-variant' + - 'font-weight' + - 'src' + + - 'word-spacing' + - 'letter-spacing' + - 'line-height' + + - 'color' + - 'direction' + - 'text-align' + - 'text-decoration' + - 'text-indent' + - 'text-overflow' + - 'text-rendering' + - 'text-size-adjust' + - 'text-shadow' + - 'text-transform' + + - 'white-space' + - 'word-break' + - 'word-wrap' + - 'hyphens' + - 'quotes' + + # Divers + - 'pointer-events' + - 'cursor' + + - 'backface-visibility' + - 'caption-side' + - 'empty-cells' + - 'table-layout' + - 'user-select' + + - 'interpolation-mode' + - 'marks' + - 'page' + - 'set-link-source' + - 'unicode-bidi' + - 'speak' + pseudo-element: 0 + quotes: + - 1 + - style: double + shorthand-values: 1 + url-quotes: 1 + variable-for-property: 1 + zero-unit: 1 + + # Inner Spacing + space-after-comma: 0 + space-before-colon: 1 + space-after-colon: 1 + space-before-brace: 1 + space-before-bang: 1 + space-after-bang: 1 + space-between-parens: 1 + space-around-operator: 1 + + # Final Items + trailing-semicolon: 1 + final-newline: 1 diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..40d6355 --- /dev/null +++ b/README.txt @@ -0,0 +1,135 @@ +BUILD A CHILD THEME WITH ZURB FOUNDATION +---------------------------------------- + +The base Foundation theme is designed to be easily extended by its sub-themes. +You shouldn't modify any of the CSS or PHP files in the zurb_foundation/ folder; +but instead you should create a sub-theme of zurb_foundation which is located in +a folder outside of the root zurb_foundation/ folder. The examples below assume +zurb_foundation and your sub-theme will be installed in themes/, +but any valid theme directory is acceptable. Read the +sites/default/default.settings.php for more info. + +This theme does not support IE7. If you need it downgrade to Foundation 2 see +http://foundation.zurb.com/docs/faq.php or use the script in the starter +template.php THEMENAME_preprocess_html function. + +*** IMPORTANT NOTE *** +* After adding a new theme in Drupal 8, you'll need to clear the theme +registry's cache, which you can do by clearing all cache in the UI or running +`drush cr` , if you have Drush installed. + +Using Drush +------------------------------- + +**Automatic drush sub-theme setup** + +To create a sub-theme, simply run the Drush command `drush fst sub_theme`, where +"sub_theme" is the desired machine name of your sub-theme. Once a sub-theme is +created, you can enable it at /admin/appearance . + +Then follow step 6 below to generate the necessary Foundation files that are not +included in the repository by default. + +**Drush and Gulp** + +The `gulpfile.babel.js` includes drush commands that can be run every time scss/css +is updated. To use drush, edit the `config.js` file. In the `drush` option: + +1. Set `enabled: false` to `enabled: true` +1. (Optional) Set the `drush_alias` variable. + + +Manual sub-theme setup +---------------------- + + 1. Setup the location for your new sub-theme. + + Copy the peceful folder out of the zurb_foundation/ folder and rename it to + be your new sub-theme. IMPORTANT: The name of your sub-theme must start with + an alphabetic character and can only contain lowercase letters, numbers and + underscores. + + For example, copy the themes/zurb_foundation/peceful folder and + rename it as themes/foo. + + Why? Each theme should reside in its own folder. To make it easier to + upgrade Foundation, sub-themes should reside in a folder separate from the + base theme. + + 2. Setup the basic information for your sub-theme. + + In your new sub-theme folder, rename the peceful.info.yml.txt file to + include the name of your new sub-theme and remove the ".txt" extension. Then + edit the .info file by editing the name and description field. + + For example, rename the foo/peceful.info.yml.txt file to foo/foo.info.yml. + Edit the foo.info.yml file and change "name: Foundation Sub-theme Starter" + to "name: Foo" and "description: Read..." to "description: A sub-theme". + + Why? The .info.yml file describes the basic things about your theme: its + name, description, features, template regions, and libraries. + See the Drupal 8 Theme Guide for more info: https://www.drupal.org/theme-guide/8 + + Then, visit your site's Appearance page at admin/appearance to refresh + Drupal 8's cache of .info file data. + + 3. Edit your sub-theme to use the proper function names. + + First, rename peceful.theme to include the name of your new sub-theme. In + this example we'll assume that it's renamed foo.theme. + + Edit the foo.theme and theme-settings.php files in your sub-theme's + folder; replace ALL occurrences of "peceful" with the name of your + sub-theme. + + For example, edit foo/foo.theme and foo/theme-settings.php and replace + every occurrence of "peceful" with "foo". + + It is recommended to use a text editing application with search and + "replace all" functionality. + + 5. Set your website's default theme. + + Log in as an administrator on your Drupal site, go to the Appearance page at + admin/appearance and click the "Enable and set default" link next to your + new sub-theme. + + 6. This theme uses npm which you will need to install as a prerequisite for + developing your theme, although once in production it is not necessary for + general use. + + Once you have ensured npm is installed, run this command at the root of + your sub theme: + - `npm install` + + Finally, run `gulp` to run the Sass compiler, or 'gulp watch' which + will re-run every time you save a Sass file. Press Ctrl-C to break out of + watching files. + + +Optional steps: + + 7. Modify the markup in Foundation core theme's template files. + + If you decide you want to modify any of the .html.twig template files in the + zurb_foundation folder, copy them to your sub-theme's folder before + making any changes.And then rebuild the theme registry. + + For example, copy zurb_foundation/templates/page.html.twig to + THEMENAME/templates/page.html.twig. + + 8. Optionally override existing Drupal core *.html.twig templates in your + sub-theme. + + 9. Add custom css and js files to your sub-theme + + Rename peceful.libraries.yml to the name of your sub-theme, un-commenting + lines and making name changes as needed. + + You'll also need to edit your info.yml file to include your new library. + There are instructions in the info.yml file to help you do this. + + 9. Further extend your sub-theme. + + Discover further ways to extend your sub-theme by reading + Drupal 8's Theme Guide online at: https://www.drupal.org/theme-guide/8 diff --git a/config.js b/config.js new file mode 100644 index 0000000..3731ddd --- /dev/null +++ b/config.js @@ -0,0 +1,34 @@ +// Override gulp options here rather than in gulpfile.js. + +// Set a drush alias if required to run locally, i.e.: +// '@multisite.local --uri=multisitename' +var drush_alias = ''; + +module.exports = { + // set 'enabled: true' to run drush commands as a part of 'gulp watch'. + drush: { + enabled: false, + alias: { + css_js: 'drush ' + drush_alias + ' cc css-js', + cr: 'drush ' + drush_alias + ' cr' + } + }, + + // Override sass compile options. + /* + scss: { + outputStyle: 'expanded', + lintIgnore: '', + }, + */ + + // If your files are on a network share, you may want to turn on polling for + // Gulp watch. Since polling is less efficient, we disable polling by default. + /* + gulpWatchOptions: { + interval: 1000, + mode: 'poll' + }, + */ + +}; diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..2879a7d --- /dev/null +++ b/config.yml @@ -0,0 +1,22 @@ +# The URL of your server (e.g. http://localhost:49871 or foobar.lndo.site) for browersync +BROWSERSYNC: 'https://foobar.lndo.site' + +# Gulp will reference these paths when it copies files +PATHS: + # Path to built css folder + dist: "css" + # Path to main scss files and settings for subtheme + scss: "scss/*.scss" + # Path to subtheme scss files + componentScss: "scss/**/*.scss" + # Paths to Sass libraries, which can then be loaded with @import + foundationScss: + - "node_modules/foundation-sites/scss" + - "node_modules/motion-ui/src" + # Path to custom JS + js: + "js/*.js" + # Paths to Foundation JavaScript for webpack to bundle modules + foundationJs: + - "node_modules/foundation-sites/dist/js/*.js" + - "node_modules/motion-ui/dist/*.js" diff --git a/config/install/README.txt b/config/install/README.txt new file mode 100644 index 0000000..e9b0737 --- /dev/null +++ b/config/install/README.txt @@ -0,0 +1,8 @@ +DEFAULT INSTALL SETTINGS +---------------------------------- + +Before installing your theme, change the name of peceful.settings.yml to use +your theme name. This will ensure that base css and js are turned off by default on +install. You can add additional settings in that file if you need as well. + +See zurb-foundation/config/install/zurb_foundation.settings.yml for example. diff --git a/config/install/peceful.settings.yml b/config/install/peceful.settings.yml new file mode 100644 index 0000000..7858d7c --- /dev/null +++ b/config/install/peceful.settings.yml @@ -0,0 +1,2 @@ +zurb_foundation_disable_base_css: 1 +zurb_foundation_disable_base_js: 1 diff --git a/css/peceful.css b/css/peceful.css new file mode 100644 index 0000000..e69de29 diff --git a/gulpfile.babel.js b/gulpfile.babel.js new file mode 100644 index 0000000..da609f4 --- /dev/null +++ b/gulpfile.babel.js @@ -0,0 +1,161 @@ +// The Theme build process is based off of the Foundation Zurb +// Template: https://github.com/foundation/foundation-zurb-template +// Update the config.yml file with your peceful URI, and any +// file paths that are different from the default. + +import plugins from 'gulp-load-plugins'; +import yargs from 'yargs'; +import browser from 'browser-sync'; +import gulp from 'gulp'; +import rimraf from 'rimraf'; +import yaml from 'js-yaml'; +import fs from 'fs'; +import webpackStream from 'webpack-stream'; +import webpack2 from 'webpack'; +import named from 'vinyl-named'; +import autoprefixer from 'autoprefixer'; +import imagemin from 'gulp-imagemin'; + +const sass = require('gulp-sass'); +const postcss = require('gulp-postcss'); +const sassLint = require('gulp-sass-lint'); + +// Load all Gulp plugins into one variable. +const $ = plugins(); + +// Check for --production flag. +const PRODUCTION = !!(yargs.argv.production); + +// Load settings from config.yml. +function loadConfig() { + const unsafe = require('js-yaml-js-types').all; + const schema = yaml.DEFAULT_SCHEMA.extend(unsafe); + const ymlFile = fs.readFileSync('config.yml', 'utf8'); + return yaml.load(ymlFile, {schema}); +} + +const { BROWSERSYNC, PATHS } = loadConfig(); + +// Build the compiled js and css by running all of the below tasks. +// Sass must be run later so UnCSS can search for used classes in the others assets. +gulp.task('build', + gulp.series(clean, gulp.parallel(javascript, images), sassBuild, lintSass) +); + +// Build the site, run the server, and watch for file changes. +gulp.task('default', + gulp.series('build', server, watch) +); + +// Delete the compiled js and css. +// This happens every time a build starts. +function clean(done) { + rimraf(PATHS.dist, done); +} + +// Compile Sass into CSS +// In production, the CSS is compressed +function sassBuild() { + + const postCssPlugins = [ + // Autoprefixer + autoprefixer(), + ].filter(Boolean); + + return gulp.src(PATHS.scss) + .pipe($.sourcemaps.init()) + .pipe(sass({ + includePaths: PATHS.foundationScss + }) + .on('error', $.sass.logError)) + .pipe(postcss(postCssPlugins)) + .pipe($.if(PRODUCTION, $.cleanCss({ compatibility: 'ie11' }))) + .pipe($.if(!PRODUCTION, $.sourcemaps.write())) + .pipe(gulp.dest(PATHS.dist)) + .pipe(browser.reload({ stream: true })); +} + +function lintSass() { + return gulp.src(PATHS.componentScss) + .pipe(sassLint({ + config: 'sass-lint.yml' + })) + .pipe(sassLint.format()); +} + +let webpackConfig = { + mode: (PRODUCTION ? 'production' : 'development'), + externals: { + jquery: 'jQuery' + }, + module: { + rules: [ + { + test: /\.js$/, + use: { + loader: 'babel-loader', + options: { + presets: [ "@babel/preset-env" ], + compact: false + } + } + } + ] + }, + devtool: !PRODUCTION && 'source-map' +} + +// Load/copy Foundation JavaScript +// In production, the file is minified +function javascript() { + return gulp.src(PATHS.foundationJs) + .pipe(named()) + .pipe($.sourcemaps.init()) + .pipe(webpackStream(webpackConfig, webpack2)) + .pipe($.if(PRODUCTION, $.terser() + .on('error', e => { console.log(e); }) + )) + .pipe($.if(!PRODUCTION, $.sourcemaps.write())) + .pipe(gulp.dest('js/')); +} + +// If using image optimization, copy them to image folder. +// In production, the images are compressed. +function images() { + return gulp.src('images-source/**/*') + .pipe($.if(PRODUCTION, imagemin([ + imagemin.gifsicle({interlaced: true}), + imagemin.mozjpeg({quality: 85, progressive: true}), + imagemin.optipng({optimizationLevel: 5}), + imagemin.svgo({ + plugins: [ + {removeViewBox: true}, + {cleanupIDs: false} + ] + }) + ]))) + .pipe(gulp.dest('images/')); +} + +// Start a server with BrowserSync to preview the site in +function server(done) { + browser.init({ + proxy: { + target: BROWSERSYNC + }, + }, done); +} + +// Reload the browser with BrowserSync +function reload(done) { + browser.reload(); + done(); +} + + +// Watch for changes to SCSS and JavaScript +function watch() { + gulp.watch(PATHS.componentScss).on('all', sassBuild); + gulp.watch(PATHS.js).on('all', gulp.series(browser.reload)); + gulp.watch('images-source').on('all', gulp.series(images, browser.reload)); +} diff --git a/images/foundation/misc/required.svg b/images/foundation/misc/required.svg new file mode 100644 index 0000000..f7882d6 --- /dev/null +++ b/images/foundation/misc/required.svg @@ -0,0 +1 @@ + diff --git a/images/foundation/orbit/bullets.jpg b/images/foundation/orbit/bullets.jpg new file mode 100644 index 0000000..f3c734f Binary files /dev/null and b/images/foundation/orbit/bullets.jpg differ diff --git a/images/foundation/orbit/left-arrow-small.png b/images/foundation/orbit/left-arrow-small.png new file mode 100644 index 0000000..b3ff033 Binary files /dev/null and b/images/foundation/orbit/left-arrow-small.png differ diff --git a/images/foundation/orbit/left-arrow.png b/images/foundation/orbit/left-arrow.png new file mode 100644 index 0000000..7e3f2d6 Binary files /dev/null and b/images/foundation/orbit/left-arrow.png differ diff --git a/images/foundation/orbit/loading.gif b/images/foundation/orbit/loading.gif new file mode 100644 index 0000000..969f505 Binary files /dev/null and b/images/foundation/orbit/loading.gif differ diff --git a/images/foundation/orbit/mask-black.png b/images/foundation/orbit/mask-black.png new file mode 100644 index 0000000..02f3fba Binary files /dev/null and b/images/foundation/orbit/mask-black.png differ diff --git a/images/foundation/orbit/pause-black.png b/images/foundation/orbit/pause-black.png new file mode 100644 index 0000000..5fb0875 Binary files /dev/null and b/images/foundation/orbit/pause-black.png differ diff --git a/images/foundation/orbit/right-arrow-small.png b/images/foundation/orbit/right-arrow-small.png new file mode 100644 index 0000000..e4c9533 Binary files /dev/null and b/images/foundation/orbit/right-arrow-small.png differ diff --git a/images/foundation/orbit/right-arrow.png b/images/foundation/orbit/right-arrow.png new file mode 100644 index 0000000..7c3199a Binary files /dev/null and b/images/foundation/orbit/right-arrow.png differ diff --git a/images/foundation/orbit/rotator-black.png b/images/foundation/orbit/rotator-black.png new file mode 100644 index 0000000..8df4d31 Binary files /dev/null and b/images/foundation/orbit/rotator-black.png differ diff --git a/images/foundation/orbit/timer-black.png b/images/foundation/orbit/timer-black.png new file mode 100644 index 0000000..02f3fba Binary files /dev/null and b/images/foundation/orbit/timer-black.png differ diff --git a/js/foundation_init.js b/js/foundation_init.js new file mode 100644 index 0000000..71545ab --- /dev/null +++ b/js/foundation_init.js @@ -0,0 +1,17 @@ +/** + * @file + * Initializes foundation's JavaScript. + * + */ +(function ($, Drupal) { + + /** + * Initializes foundation's JavaScript for new content added to the page. + */ + Drupal.behaviors.foundationInit = { + attach: function (context, settings) { + $(context).foundation(); + } + }; + +})(jQuery, Drupal); diff --git a/js/peceful.js b/js/peceful.js new file mode 100644 index 0000000..5fa57cb --- /dev/null +++ b/js/peceful.js @@ -0,0 +1,17 @@ +/** + * @file + * Placeholder file for custom sub-theme behaviors. + * + */ +(function ($, Drupal) { + + /** + * Use this behavior as a template for custom Javascript. + */ + Drupal.behaviors.exampleBehavior = { + attach: function (context, settings) { + //alert("I'm alive!"); + } + }; + +})(jQuery, Drupal); diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..7d7cf7c --- /dev/null +++ b/logo.svg @@ -0,0 +1 @@ + diff --git a/package.json b/package.json new file mode 100644 index 0000000..c58f8ee --- /dev/null +++ b/package.json @@ -0,0 +1,53 @@ +{ + "name": "peceful", + "version": "1.0.0", + "main": "gulpfile.babel.js", + "scripts": { + "start": "gulp", + "watch": "gulp", + "build": "gulp build --production", + "postinstall": "node_modules/.bin/rimraf ./node_modules/**/*.info" + }, + "dependencies": { + "foundation-sites": "6.7.4", + "motion-ui": "~2.0.3", + "what-input": "^5.2.10" + }, + "devDependencies": { + "@babel/core": "^7.15.5", + "@babel/preset-env": "^7.15.6", + "@babel/register": "^7.15.3", + "autoprefixer": "^10.3.4", + "babel-loader": "^8.2.2", + "browser-sync": "^2.27.5", + "fs": "^0.0.1-security", + "gulp": "^4.0.2", + "gulp-babel": "^8.0.0", + "gulp-clean-css": "^4.3.0", + "gulp-cli": "^2.3.0", + "gulp-concat": "^2.6.1", + "gulp-extname": "^0.2.2", + "gulp-if": "^3.0.0", + "gulp-imagemin": "^7.1.0", + "gulp-load-plugins": "^2.0.7", + "gulp-postcss": "^9.0.1", + "gulp-sass": "^4.1.1", + "gulp-sass-lint": "^1.4.0", + "gulp-sourcemaps": "^3.0.0", + "gulp-terser": "^2.0.1", + "js-yaml": "^4.1.0", + "js-yaml-js-types": "^1.0.0", + "node-sass": "^6.0.1", + "postcss": "^8.3.11", + "rimraf": "^3.0.2", + "uncss": "^0.17.3", + "vinyl-named": "^1.1.0", + "webpack": "^5.52.1", + "webpack-stream": "^7.0.0", + "yargs": "^17.1.1" + }, + "private": true, + "browserslist": [ + "last 2 versions" + ] +} diff --git a/peceful.info.yml b/peceful.info.yml new file mode 100644 index 0000000..7e2d949 --- /dev/null +++ b/peceful.info.yml @@ -0,0 +1,45 @@ +name: ZURB Foundation Sub-theme Starter +description: "Custom sub-theme, inherits from the Foundation base theme read framework documentation" +core: 8.x +core_version_requirement: ^8 || ^9 +type: theme +base theme: zurb_foundation + +# Image appears on admin/appearance +# screenshot: images/screenshot.jpg + +# Uncomment these lines and change "peceful" to your theme name if you +# need to add custom CSS or JS +libraries: + - peceful/global + +# Regions are output in the page.html.twig + +regions: + meta_header: 'Meta header' + header: Header + help: Help + page_top: 'Page top' + page_bottom: 'Page bottom' + highlighted: Highlighted + content: Content + sidebar_first: 'Left sidebar' + sidebar_second: 'Right sidebar' + footer_first: 'Footer first column' + footer_middle: 'Footer middle column' + footer_last: 'Footer last column' + left_off_canvas: 'Left off canvas' + right_off_canvas: 'Right off canvas' +regions_hidden: + page_top: 'Page top' + page_bottom: 'Page bottom' + +# Hidden regions +# regions_hidden[]: Page top +# regions_hidden[]: Page bottom + +features: + - slogan + - favicon + - comment_user_picture + - node_user_picture diff --git a/peceful.libraries.yml b/peceful.libraries.yml new file mode 100644 index 0000000..bf49c40 --- /dev/null +++ b/peceful.libraries.yml @@ -0,0 +1,14 @@ +global: + version: VERSION + css: + base: + css/peceful.css: {} + js: + js/peceful.js: { } + js/foundation.min.js: {minified: true} + js/foundation_init.js: {} + js/motion-ui.min.js: {minified: true} + dependencies: + - core/drupal + - core/jquery + - core/once diff --git a/peceful.theme b/peceful.theme new file mode 100644 index 0000000..f99b877 --- /dev/null +++ b/peceful.theme @@ -0,0 +1,48 @@ +