merge develop changes
This commit is contained in:
parent
a2545eae38
commit
6242ac7cfd
|
|
@ -1,17 +1,27 @@
|
|||
# Please see https://github.com/browserslist/browserslist for more info
|
||||
# These settings can be changed depending on what browsers your project is supporting
|
||||
|
||||
|
||||
#
|
||||
# BOOTSTRAP 4
|
||||
#
|
||||
|
||||
[bs4]
|
||||
|
||||
# General rules
|
||||
last 2 major version and not dead
|
||||
>= 0.01%
|
||||
|
||||
# Explicit inclusions
|
||||
# See https://getbootstrap.com/docs/4.6/getting-started/browsers-devices/
|
||||
>= 1%
|
||||
last 1 major version
|
||||
not dead
|
||||
Chrome >= 45
|
||||
Firefox >= 38
|
||||
Firefox ESR
|
||||
Explorer >= 10
|
||||
Firefox >= 38
|
||||
Edge >= 12
|
||||
Explorer >= 10
|
||||
iOS >= 9
|
||||
Safari >= 9
|
||||
Android >= 4.4
|
||||
|
|
@ -28,3 +38,19 @@ not Safari < 8 # no support for flex-shrink
|
|||
not Opera < 12.1 # no flexbox support
|
||||
not OperaMobile < 12.1 # no flexbox support
|
||||
not Android < 4.4 # no flexbox support
|
||||
|
||||
#
|
||||
# BOOTSTRAP 5
|
||||
# See https://getbootstrap.com/docs/5.1/getting-started/browsers-devices/
|
||||
#
|
||||
|
||||
[bs5]
|
||||
>= 0.5%
|
||||
last 2 major versions
|
||||
not dead
|
||||
Chrome >= 60
|
||||
Firefox >= 60
|
||||
Firefox ESR
|
||||
iOS >= 12
|
||||
Safari >= 12
|
||||
not Explorer <= 11
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
.editorconfig text
|
||||
.gitattributes text
|
||||
.gitignore text
|
||||
.jscsrc text
|
||||
.jshintignore text
|
||||
*.css text
|
||||
*.js text
|
||||
*.json text
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
<p align="center"><img src="https://understrap.com/wp-content/uploads/2022/02/Understrap_Logo_Color.svg" width="320" height="auto"></p>
|
||||
|
||||
[](https://travis-ci.org/understrap/understrap)
|
||||
[](https://wordpress.org/themes/understrap)
|
||||
[](https://wordpress.org/themes/understrap/)
|
||||
[](https://github.com/understrap/understrap/commits/master)
|
||||
|
|
|
|||
|
|
@ -1,14 +1,23 @@
|
|||
# Set up for npm and Composer
|
||||
# Set up for GitHub Actions, npm and Composer
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
labels:
|
||||
- "dependencies"
|
||||
open-pull-requests-limit: 10
|
||||
rebase-strategy: auto
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
day: "monday"
|
||||
time: "06:00"
|
||||
|
||||
# Maintain dependencies for npm
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/"
|
||||
ignore:
|
||||
- dependency-name: "bootstrap"
|
||||
versions: "5.x"
|
||||
labels:
|
||||
- "dependencies"
|
||||
open-pull-requests-limit: 10
|
||||
|
|
|
|||
|
|
@ -27,8 +27,10 @@
|
|||
- [ ] \(Optional) I have updated the documentation accordingly.
|
||||
- [ ] \(Optional) My change requires a change to the translations.
|
||||
- [ ] \(Optional) I have updated the translations accordingly.
|
||||
- [ ] `composer cs:check` has passed locally.
|
||||
- [ ] `composer lint:php` has passed locally.
|
||||
- [ ] `composer phpcs` has passed locally.
|
||||
- [ ] `composer php-lint` has passed locally.
|
||||
- [ ] `composer phpmd` has passed locally.
|
||||
- [ ] `composer phpstan` has passed locally.
|
||||
- [ ] I have read the **[CONTRIBUTING](https://github.com/understrap/understrap/blob/main/.github/CONTRIBUTING.md)** document.
|
||||
|
||||
## Related Issues or Roadmap requests
|
||||
|
|
|
|||
|
|
@ -0,0 +1,171 @@
|
|||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ develop ]
|
||||
pull_request:
|
||||
branches: [ develop ]
|
||||
workflow_dispatch:
|
||||
branches: [ develop ]
|
||||
|
||||
env:
|
||||
php-version: '7.4'
|
||||
|
||||
jobs:
|
||||
|
||||
phpcs:
|
||||
|
||||
name: 'Coding Standards with PHP CodeSniffer'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ env.php-version }}
|
||||
tools: composer, cs2pr
|
||||
coverage: none
|
||||
|
||||
- name: Get Composer cache directory
|
||||
id: composer-cache
|
||||
run: |
|
||||
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-composer-
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.composer-cache.outputs.cache-hit != 'true'
|
||||
run: composer install --prefer-dist --no-progress
|
||||
|
||||
- name: Auto fix coding standards
|
||||
run: composer phpcs-fix
|
||||
continue-on-error: true
|
||||
|
||||
- name: Commit coding standards fixes
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: Fix coding standards with phpcbf
|
||||
branch: ${{ github.head_ref }}
|
||||
|
||||
- name: Check coding standards
|
||||
run: composer phpcs-ga | cs2pr
|
||||
|
||||
php-lint:
|
||||
|
||||
name: 'Syntax with PHP Parallel Lint'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Get Composer cache directory
|
||||
id: composer-cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor
|
||||
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-php-
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.composer-cache.outputs.cache-hit != 'true'
|
||||
run: composer install --prefer-dist --no-progress
|
||||
|
||||
- name: Check syntax
|
||||
run: composer php-lint
|
||||
|
||||
phpstan:
|
||||
|
||||
name: 'Static Analysis with PHPStan'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ env.php-version }}
|
||||
tools: composer, cs2pr
|
||||
coverage: none
|
||||
|
||||
- name: Get Composer cache directory
|
||||
id: composer-cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor
|
||||
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-php-
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.composer-cache.outputs.cache-hit != 'true'
|
||||
run: composer install --prefer-dist --no-progress
|
||||
|
||||
- name: Static Analysis
|
||||
id: phpstan
|
||||
run: composer phpstan -- --error-format=github
|
||||
|
||||
- name: Update basefile
|
||||
run: composer phpstan-baseline
|
||||
|
||||
- name: Commit updated basefile
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: Update PHPStan basefile
|
||||
branch: ${{ github.head_ref }}
|
||||
|
||||
phpmd:
|
||||
|
||||
name: 'Mess Detection with PHPMD'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: composer, cs2pr
|
||||
coverage: none
|
||||
|
||||
- name: Get Composer cache directory
|
||||
id: composer-cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor
|
||||
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-php-
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.composer-cache.outputs.cache-hit != 'true'
|
||||
run: composer install --prefer-dist --no-progress
|
||||
|
||||
- name: Detect mess
|
||||
run: composer phpmd-ga
|
||||
|
||||
- name: Update basefile
|
||||
run: composer phpmd-baseline
|
||||
|
||||
- name: Commit updated basefile
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: Update PHPMD basefile
|
||||
branch: ${{ github.head_ref }}
|
||||
|
|
@ -20,14 +20,12 @@
|
|||
*~
|
||||
._*
|
||||
# but track
|
||||
!.babelrc.js
|
||||
!.browserslist
|
||||
!.editorconfig
|
||||
!.gitattributes
|
||||
!.github
|
||||
!.gitignore
|
||||
!.jscsrc
|
||||
!.jshintignore
|
||||
!.travis.yml
|
||||
|
||||
# Ignore all files with .lock extentions
|
||||
*.lock
|
||||
|
|
|
|||
13
.jscsrc
13
.jscsrc
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"preset": "wordpress",
|
||||
"fileExtensions": [ ".js" ],
|
||||
"excludeFiles": [
|
||||
"js/**.min.js",
|
||||
"src/**/*.js",
|
||||
"js/popper.js",
|
||||
"js/theme.js",
|
||||
"gulpfile.js",
|
||||
"vendor/**",
|
||||
"node_modules/**"
|
||||
]
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
js/**.min.js
|
||||
src/**/*.js
|
||||
js/popper.js
|
||||
js/theme.js
|
||||
gulpfile.js
|
||||
node_modules
|
||||
vendor
|
||||
67
.travis.yml
67
.travis.yml
|
|
@ -1,67 +0,0 @@
|
|||
# Travis CI configuration file.
|
||||
# @link https://travis-ci.org/
|
||||
|
||||
# For use with the UnderStrap WordPress theme
|
||||
# @link https://github.com/understrap/understrap
|
||||
|
||||
|
||||
# Declare virtual environment and operating system.
|
||||
# @link https://docs.travis-ci.com/user/reference/overview/#virtualization-environments
|
||||
os: linux
|
||||
dist: xenial
|
||||
|
||||
# Declare project language and PHP versions to test against.
|
||||
# @link https://docs.travis-ci.com/user/languages/php/
|
||||
language: php
|
||||
php:
|
||||
- '5.6'
|
||||
- '7.0'
|
||||
- '7.1'
|
||||
- '7.2'
|
||||
- '7.3'
|
||||
- '7.4'
|
||||
- nightly
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
include:
|
||||
- php: 7.4
|
||||
env: PHPCS=1
|
||||
allow_failures:
|
||||
- php: nightly
|
||||
|
||||
# Use this to prepare the build for testing.
|
||||
before_script:
|
||||
# Speed up build time by disabling Xdebug.
|
||||
- phpenv config-rm xdebug.ini || echo 'No xdebug config.'
|
||||
# Install composer dependencies
|
||||
- if [ "$TRAVIS_PHP_VERSION" != "nightly" ]; then
|
||||
composer install;
|
||||
else
|
||||
composer install --ignore-platform-reqs;
|
||||
fi
|
||||
# Install JSCS: JavaScript Code Style checker
|
||||
# @link http://jscs.info/
|
||||
- if [[ "$PHPCS" == 1 ]]; then npm install -g jscs; fi
|
||||
# Install JSHint, a JavaScript Code Quality Tool
|
||||
# @link https://jshint.com/docs/
|
||||
- if [[ "$PHPCS" == 1 ]]; then npm install -g jshint; fi
|
||||
- if [[ "$PHPCS" == 1 ]]; then wget https://develop.svn.wordpress.org/trunk/.jshintrc; fi
|
||||
|
||||
# Run test script commands.
|
||||
# Default is specific to project language.
|
||||
# All commands must exit with code 0 on success. Anything else is considered failure.
|
||||
script:
|
||||
# Validate the composer.json file.
|
||||
# @link https://getcomposer.org/doc/03-cli.md#validate
|
||||
- if [[ "$PHPCS" == 1 ]]; then composer validate --no-check-all --strict; fi
|
||||
|
||||
# Lint the PHP files against parse errors.
|
||||
- composer lint:php
|
||||
|
||||
# Check the code against the standards as documented in the phpcs.xml file.
|
||||
- if [[ "$PHPCS" == 1 ]]; then composer check:cs; fi
|
||||
# Run the theme through JSHint
|
||||
- if [[ "$PHPCS" == 1 ]]; then jshint .; fi
|
||||
# Run the theme through JavaScript Code Style checker
|
||||
- if [[ "$PHPCS" == 1 ]]; then jscs .; fi
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "understrap/understrap",
|
||||
"description": "Combines Automattic´s Underscores Starter Theme and Bootstrap 4",
|
||||
"description": "Combines Automattic's Underscores Starter Theme and Bootstrap",
|
||||
"type": "wordpress-theme",
|
||||
"license": "GPL-2.0-only",
|
||||
"minimum-stability": "stable",
|
||||
|
|
@ -10,21 +10,39 @@
|
|||
"bootstrap"
|
||||
],
|
||||
"homepage": "https://github.com/understrap/understrap",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/understrap/understrap/contributors.md"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"composer/installers": "^1.12",
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||
"phpcompatibility/phpcompatibility-wp": "^2.1.3",
|
||||
"phpmd/phpmd": "^2.11.1",
|
||||
"phpstan/phpstan": "^1.4.8",
|
||||
"roave/security-advisories": "dev-master",
|
||||
"wp-coding-standards/wpcs": "^2.3",
|
||||
"wptrt/wpthemereview": "*",
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3"
|
||||
"squizlabs/php_codesniffer": "^3.6.2",
|
||||
"szepeviktor/phpstan-wordpress": "^1.0.3",
|
||||
"wp-coding-standards/wpcs": "^2.3.0",
|
||||
"wptrt/wpthemereview": "^0.2.1"
|
||||
},
|
||||
"scripts": {
|
||||
"check:cs": ["@php ./vendor/squizlabs/php_codesniffer/bin/phpcs"],
|
||||
"fix:cs": ["@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf"],
|
||||
"lint:php": ["@php ./vendor/bin/parallel-lint --exclude .git --exclude vendor ."]
|
||||
"php-lint": "@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint --exclude vendor --exclude dist --exclude node_modules --exclude .git .",
|
||||
"phpcs": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs -p",
|
||||
"phpcs-ga": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs -n --report=checkstyle",
|
||||
"phpcs-fix": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf",
|
||||
"phpcs-config-set" : "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --config-set installed_paths ../../phpcompatibility/php-compatibility,../../phpcompatibility/phpcompatibility-paragonie,../../phpcompatibility/phpcompatibility-wp,../../wp-coding-standards/wpcs,../../wptrt/wpthemereview",
|
||||
"phpmd": "@php ./vendor/phpmd/phpmd/src/bin/phpmd . ansi phpmd.xml --exclude vendor,src,node_modules,languages,js,fonts,css,.github,.git,class-wp-bootstrap-navwalker.php,inc/deprecated.php",
|
||||
"phpmd-baseline": "@phpmd -- --generate-baseline",
|
||||
"phpmd-ga": "@php ./vendor/phpmd/phpmd/src/bin/phpmd . github phpmd.xml --exclude vendor,src,node_modules,languages,js,fonts,css,.github,.git,class-wp-bootstrap-navwalker.php,inc/deprecated.php",
|
||||
"phpstan": "@php ./vendor/phpstan/phpstan/phpstan analyse",
|
||||
"phpstan-baseline": "@php ./vendor/phpstan/phpstan/phpstan analyse --generate-baseline",
|
||||
"post-install-cmd": "@phpcs-config-set",
|
||||
"post-update-cmd": "@phpcs-config-set"
|
||||
},
|
||||
"support": {
|
||||
"issues": "https://github.com/understrap/understrap/issues",
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1268
css/theme.css
1268
css/theme.css
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -259,13 +259,11 @@ if ( ! function_exists( 'understrap_customize_controls_js' ) ) {
|
|||
}
|
||||
add_action( 'customize_controls_enqueue_scripts', 'understrap_customize_controls_js' );
|
||||
|
||||
|
||||
|
||||
if ( ! function_exists( 'understrap_default_navbar_type' ) ) {
|
||||
/**
|
||||
* Overrides the responsive navbar type for Bootstrap 4
|
||||
* Overrides the responsive navbar type for Bootstrap 4.
|
||||
*
|
||||
* @param string $current_mod
|
||||
* @param string $current_mod Current navbar type.
|
||||
* @return string
|
||||
*/
|
||||
function understrap_default_navbar_type( $current_mod ) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15634
js/theme.js
15634
js/theme.js
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
53
package.json
53
package.json
|
|
@ -7,18 +7,18 @@
|
|||
"bs": "browser-sync start --config src/build/browser-sync.config.js",
|
||||
"css": "npm-run-all css-compile css-postcss css-minify",
|
||||
"css-compile": "sass --style expanded --source-map --embed-sources --no-error-css --quiet src/sass/theme.scss:css/theme.css src/sass/custom-editor-style.scss:css/custom-editor-style.css",
|
||||
"css-minify": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output css/ --batch --batch-suffix \".min\" \"css/*.css\" \"!css/*.min.css\" \"!css/*rtl*.css\"",
|
||||
"css-postcss": "postcss --config src/build/postcss.config.js --replace \"css/*.css\" \"!css/*.rtl*.css\" \"!css/*.min.css\"",
|
||||
"css-minify": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output css/ --batch --batch-suffix \".min\" \"css/*.css\" \"!css/*.min.css\" \"!css/*rtl*.css\" \"!css/*-bootstrap4.css\"",
|
||||
"css-postcss": "postcss --config src/build/postcss.config.js --replace \"css/*.css\" \"!css/*.rtl*.css\" \"!css/*.min.css\" \"!css/*-bootstrap4.css\"",
|
||||
"css-bs4": "npm-run-all css-compile-bs4 css-postcss-bs4 css-minify-bs4",
|
||||
"css-compile-bs4": "sass --style expanded --source-map --embed-sources --no-error-css --quiet src/sass/theme-bootstrap4.scss:css/theme-bootstrap4.css src/sass/custom-editor-style-bootstrap4.scss:css/custom-editor-style-bootstrap4.css",
|
||||
"css-minify-bs4": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output css/ --batch --batch-suffix \".min\" \"css/*.css\" \"!css/*.min.css\" \"!css/*rtl*.css\"",
|
||||
"css-postcss-bs4": "postcss --config src/build-bootstrap4/postcss.config.js --replace \"css/*.css\" \"!css/*.rtl*.css\" \"!css/*.min.css\"",
|
||||
"css-minify-bs4": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output css/ --batch --batch-suffix \".min\" \"css/*.css\" \"!css/*.min.css\" \"!css/*rtl*.css\" \"!css/theme.css\" \"!css/custom-editor-style.css\"",
|
||||
"css-postcss-bs4": "postcss --config src/build/postcss.config.js --replace \"css/*.css\" \"!css/*.rtl*.css\" \"!css/*.min.css\" \"!css/theme.css\" \"!css/custom-editor-style.css\" -- BS4",
|
||||
"js": "npm-run-all js-compile js-minify",
|
||||
"js-compile": "rollup --config src/build/rollup.config.js --sourcemap",
|
||||
"js-minify": "terser --config-file src/build/terser.config.json --output js/theme.min.js js/theme.js",
|
||||
"js-minify": "terser js/theme.min.js --config-file src/build/terser.config.json --source-map \"content=js/theme.js.map,url=theme.min.js.map,filename=theme.min.js\" --output js/theme.min.js",
|
||||
"js-bs4": "npm-run-all js-compile-bs4 js-minify-bs4",
|
||||
"js-compile-bs4": "rollup --config src/build-bootstrap4/rollup.config.js --sourcemap",
|
||||
"js-minify-bs4": "terser --config-file src/build-bootstrap4/terser.config.json --output js/theme-bootstrap4.min.js js/theme-bootstrap4.js",
|
||||
"js-compile-bs4": "npm run js-compile -- BS4",
|
||||
"js-minify-bs4": "terser js/theme-bootstrap4.min.js --config-file src/build/terser.config.json --source-map \"content=js/theme-bootstrap4.js.map,url=theme-bootstrap4.min.js.map,filename=theme-bootstrap4.min.js\" --output js/theme-bootstrap4.min.js",
|
||||
"watch": "npm-run-all --parallel watch-run-*",
|
||||
"watch-bs": "npm-run-all --parallel bs watch-run-*",
|
||||
"watch-run-css": "nodemon --watch src/sass/ --ext scss --exec \"npm-run-all css\"",
|
||||
|
|
@ -28,6 +28,9 @@
|
|||
"dist-build": "node src/build/dist-build.js",
|
||||
"dist-clean": "node src/build/dist-clean.js"
|
||||
},
|
||||
"babel": {
|
||||
"extends": "./src/build/babel.config.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
},
|
||||
|
|
@ -48,33 +51,31 @@
|
|||
"url": "https://github.com/understrap/understrap/issues"
|
||||
},
|
||||
"homepage": "https://understrap.com",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.16.0",
|
||||
"@babel/preset-env": "^7.16.4",
|
||||
"@popperjs/core": "^2.11.0",
|
||||
"@rollup/plugin-babel": "^5.3.0",
|
||||
"@rollup/plugin-commonjs": "^21.0.1",
|
||||
"@babel/core": "^7.17.5",
|
||||
"@babel/preset-env": "^7.16.11",
|
||||
"@popperjs/core": "^2.11.2",
|
||||
"@rollup/plugin-babel": "^5.3.1",
|
||||
"@rollup/plugin-commonjs": "^21.0.2",
|
||||
"@rollup/plugin-multi-entry": "^4.1.0",
|
||||
"@rollup/plugin-node-resolve": "^13.0.6",
|
||||
"@rollup/plugin-replace": "^3.0.0",
|
||||
"autoprefixer": "^10.4.0",
|
||||
"@rollup/plugin-node-resolve": "^13.1.3",
|
||||
"@rollup/plugin-replace": "^4.0.0",
|
||||
"autoprefixer": "^10.4.2",
|
||||
"bootstrap": "^5.1.3",
|
||||
"bootstrap4": "npm:bootstrap@^4.6.0",
|
||||
"bootstrap4": "npm:bootstrap@^4.6.1",
|
||||
"browser-sync": "^2.27.7",
|
||||
"browserslist": "^4.18.1",
|
||||
"caniuse-lite": "^1.0.30001283",
|
||||
"clean-css-cli": "^5.4.2",
|
||||
"del": "^6.0.0",
|
||||
"browserslist": "^4.20.0",
|
||||
"caniuse-lite": "^1.0.30001313",
|
||||
"clean-css-cli": "^5.5.2",
|
||||
"font-awesome": "^4.7.0",
|
||||
"nodemon": "^2.0.15",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"popper.js": "^1.16.1",
|
||||
"postcss": "^8.4.4",
|
||||
"postcss-cli": "^9.0.2",
|
||||
"postcss": "^8.4.8",
|
||||
"postcss-cli": "^9.1.0",
|
||||
"postcss-understrap-palette-generator": "git+https://github.com/understrap/postcss-understrap-palette-generator.git",
|
||||
"rollup": "^2.60.2",
|
||||
"sass": "^1.44.0",
|
||||
"terser": "^5.10.0"
|
||||
"rollup": "^2.69.2",
|
||||
"sass": "^1.49.9",
|
||||
"terser": "^5.12.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset name="UnderStrap Coding Standards">
|
||||
<ruleset name="Understrap Coding Standards">
|
||||
|
||||
<description>Apply WordPress Coding Standards to UnderStrap</description>
|
||||
<description>Apply WordPress Coding Standards to Understrap</description>
|
||||
|
||||
<!-- Whenever possible, cache the scan results and re-use those for unchanged files on the next scan. -->
|
||||
<arg name="cache" value=".phpcs-cache"/>
|
||||
|
|
@ -15,20 +15,18 @@
|
|||
<!-- Show sniff codes in all reports -->
|
||||
<arg value="s"/>
|
||||
|
||||
<!-- Don't show warnings -->
|
||||
<arg value="n"/>
|
||||
|
||||
<!-- Show progress of the run -->
|
||||
<arg value="p"/>
|
||||
|
||||
<!-- Scan these files -->
|
||||
<file>.</file>
|
||||
|
||||
<!-- Directories and third party library exclusions. -->
|
||||
<exclude-pattern>/vendor/*</exclude-pattern>
|
||||
<exclude-pattern>/node_modules/*</exclude-pattern>
|
||||
<exclude-pattern>/languages/*</exclude-pattern>
|
||||
<exclude-pattern>/fonts/*</exclude-pattern>
|
||||
<exclude-pattern>/dist/*</exclude-pattern>
|
||||
<exclude-pattern>/dist-product/*</exclude-pattern>
|
||||
<exclude-pattern>/.git*</exclude-pattern>
|
||||
<exclude-pattern>/inc/deprecated.php</exclude-pattern>
|
||||
<exclude-pattern>*.min.(js|css)</exclude-pattern>
|
||||
|
||||
<!-- Use the WordPress Ruleset -->
|
||||
<rule ref="WordPress">
|
||||
|
|
@ -79,7 +77,7 @@
|
|||
</properties>
|
||||
</rule>
|
||||
|
||||
<!--
|
||||
<!--
|
||||
Exclude checking of line endings when reporting errors, but fix them
|
||||
when running phpcbf.
|
||||
-->
|
||||
|
|
@ -90,12 +88,11 @@
|
|||
<!-- Use the WPThemeReview Ruleset -->
|
||||
<rule ref="WPThemeReview" />
|
||||
|
||||
<!--
|
||||
<!--
|
||||
Exclude checking for shortened URLs in Bootstrap's js. files.
|
||||
Also exlude theme.js which includes bootstrap.js.
|
||||
-->
|
||||
<rule ref="WPThemeReview.Privacy.ShortenedURLs.Found">
|
||||
<exclude-pattern>/src/js/bootstrap4/bootstrap\.*js</exclude-pattern>
|
||||
<exclude-pattern>/js/theme\.js</exclude-pattern>
|
||||
<exclude-pattern>/js/theme*\.js</exclude-pattern>
|
||||
</rule>
|
||||
</ruleset>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<phpmd-baseline>
|
||||
<violation rule="PHPMD\Rule\Design\LongMethod" file="inc/customizer.php"/>
|
||||
<violation rule="PHPMD\Rule\Naming\LongVariable" file="inc/deprecated.php"/>
|
||||
<violation rule="PHPMD\Rule\Naming\LongVariable" file="inc/widgets.php"/>
|
||||
<violation rule="PHPMD\Rule\UnusedFormalParameter" file="inc/woocommerce.php"/>
|
||||
</phpmd-baseline>
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset name="PHPMD rule set"
|
||||
xmlns="http://pmd.sf.net/ruleset/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0
|
||||
http://pmd.sf.net/ruleset_xml_schema.xsd"
|
||||
xsi:noNamespaceSchemaLocation="
|
||||
http://pmd.sf.net/ruleset_xml_schema.xsd">
|
||||
<description>
|
||||
PHPMD rule set for Understrap
|
||||
</description>
|
||||
|
||||
<!-- Import the entire codesize rule set -->
|
||||
<rule ref="rulesets/codesize.xml">
|
||||
<exclude name="ExcessiveMethodLength" />
|
||||
<exclude name="ExcessiveParameterList" />
|
||||
</rule>
|
||||
|
||||
<!-- Do not import the controversial rule set -->
|
||||
<!-- <rule ref="rulesets/controversial.xml" /> -->
|
||||
|
||||
<!-- Import the entire design rule set -->
|
||||
<rule ref="rulesets/design.xml" />
|
||||
|
||||
<!-- Import entire naming rule set and exclude rules -->
|
||||
<rule ref="rulesets/naming.xml" />
|
||||
|
||||
<!-- Import the entire unused code rule set -->
|
||||
<rule ref="rulesets/unusedcode.xml">
|
||||
<exclude name="UnusedLocalVariable" />
|
||||
</rule>
|
||||
|
||||
<!-- Some customizations. -->
|
||||
<rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
|
||||
<properties>
|
||||
<property name="ignore-whitespace" value="true"/>
|
||||
</properties>
|
||||
</rule>
|
||||
|
||||
<rule ref="rulesets/codesize.xml/ExcessiveParameterList">
|
||||
<properties>
|
||||
<property name="minimum" value="4"/>
|
||||
</properties>
|
||||
</rule>
|
||||
|
||||
<!-- Allow unused variables in foreach statement -->
|
||||
<rule ref="rulesets/unusedcode.xml/UnusedLocalVariable">
|
||||
<properties>
|
||||
<property name="allow-unused-foreach-variables" value="true" />
|
||||
</properties>
|
||||
</rule>
|
||||
|
||||
</ruleset>
|
||||
|
|
@ -0,0 +1,267 @@
|
|||
parameters:
|
||||
ignoreErrors:
|
||||
-
|
||||
message: "#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\\.$#"
|
||||
count: 1
|
||||
path: inc/block-editor.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_generate_color_palette\\(\\) never returns bool so it can be removed from the return type\\.$#"
|
||||
count: 1
|
||||
path: inc/block-editor.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_generate_color_palette\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/block-editor.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#3 \\$subject of function str_replace expects array\\|string, mixed given\\.$#"
|
||||
count: 1
|
||||
path: inc/block-editor.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_bootstrap_comment_form_fields\\(\\) has parameter \\$fields with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/custom-comments.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_bootstrap_comment_form_fields\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/custom-comments.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$post_type of function post_type_supports expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/custom-comments.php
|
||||
|
||||
-
|
||||
message: "#^Call to an undefined method object\\:\\:get_setting\\(\\)\\.$#"
|
||||
count: 3
|
||||
path: inc/customizer.php
|
||||
|
||||
-
|
||||
message: "#^Cannot access property \\$choices on void\\|WP_Customize_Control\\.$#"
|
||||
count: 1
|
||||
path: inc/customizer.php
|
||||
|
||||
-
|
||||
message: "#^Inner named functions are not supported by PHPStan\\. Consider refactoring to an anonymous function, class method, or a top\\-level\\-defined function\\. See issue \\#165 \\(https\\://github\\.com/phpstan/phpstan/issues/165\\) for more details\\.$#"
|
||||
count: 1
|
||||
path: inc/customizer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#3 \\$args of class WP_Customize_Control constructor expects array\\{instance_number\\?\\: int, manager\\?\\: WP_Customize_Manager, id\\?\\: string, settings\\?\\: array, setting\\?\\: string, capability\\?\\: string, priority\\?\\: int, section\\?\\: string, \\.\\.\\.\\}, array\\{label\\: string, description\\: string, section\\: 'understrap_theme…', settings\\: 'understrap_navbar…', type\\: 'select', sanitize_callback\\: 'understrap_theme…', choices\\: array\\{collapse\\: string, offcanvas\\: string\\}, priority\\: mixed\\} given\\.$#"
|
||||
count: 1
|
||||
path: inc/customizer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#3 \\$args of class WP_Customize_Control constructor expects array\\{instance_number\\?\\: int, manager\\?\\: WP_Customize_Manager, id\\?\\: string, settings\\?\\: array, setting\\?\\: string, capability\\?\\: string, priority\\?\\: int, section\\?\\: string, \\.\\.\\.\\}, array\\{label\\: string, description\\: string, section\\: 'understrap_theme…', settings\\: 'understrap_sidebar…', type\\: 'select', sanitize_callback\\: 'understrap_theme…', choices\\: array\\{right\\: string, left\\: string, both\\: string, none\\: string\\}, priority\\: mixed\\} given\\.$#"
|
||||
count: 1
|
||||
path: inc/customizer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#3 \\$args of class WP_Customize_Control constructor expects array\\{instance_number\\?\\: int, manager\\?\\: WP_Customize_Manager, id\\?\\: string, settings\\?\\: array, setting\\?\\: string, capability\\?\\: string, priority\\?\\: int, section\\?\\: string, \\.\\.\\.\\}, array\\{label\\: string, description\\: string, section\\: 'understrap_theme…', settings\\: 'understrap_site…', type\\: 'textarea', priority\\: 20\\} given\\.$#"
|
||||
count: 1
|
||||
path: inc/customizer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#3 \\$args of class WP_Customize_Control constructor expects array\\{instance_number\\?\\: int, manager\\?\\: WP_Customize_Manager, id\\?\\: string, settings\\?\\: array, setting\\?\\: string, capability\\?\\: string, priority\\?\\: int, section\\?\\: string, \\.\\.\\.\\}, array\\{label\\: string, description\\: string, section\\: 'understrap_theme…', settings\\: 'understrap…', type\\: 'select', choices\\: array\\{bootstrap4\\: string, bootstrap5\\: string\\}, priority\\: mixed\\} given\\.$#"
|
||||
count: 1
|
||||
path: inc/customizer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#3 \\$args of class WP_Customize_Control constructor expects array\\{instance_number\\?\\: int, manager\\?\\: WP_Customize_Manager, id\\?\\: string, settings\\?\\: array, setting\\?\\: string, capability\\?\\: string, priority\\?\\: int, section\\?\\: string, \\.\\.\\.\\}, array\\{label\\: string, description\\: string, section\\: 'understrap_theme…', settings\\: 'understrap…', type\\: 'select', choices\\: array\\{container\\: string, container\\-fluid\\: string\\}, priority\\: mixed\\} given\\.$#"
|
||||
count: 1
|
||||
path: inc/customizer.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_tiny_mce_before_init\\(\\) has parameter \\$settings with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/editor.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_tiny_mce_before_init\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/editor.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_tiny_mce_blockquote_button\\(\\) has parameter \\$buttons with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/editor.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_tiny_mce_blockquote_button\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/editor.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_tiny_mce_style_formats\\(\\) has parameter \\$buttons with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/editor.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_tiny_mce_style_formats\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/editor.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$arr1 of function array_merge expects array, mixed given\\.$#"
|
||||
count: 1
|
||||
path: inc/editor.php
|
||||
|
||||
-
|
||||
message: "#^Binary operation \"\\.\" between array\\|string\\|false and '\\.' results in an error\\.$#"
|
||||
count: 2
|
||||
path: inc/enqueue.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_body_classes\\(\\) has parameter \\$classes with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/extras.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_body_classes\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/extras.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_default_body_attributes\\(\\) has parameter \\$atts with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/extras.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_default_body_attributes\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/extras.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$post of function get_permalink expects int\\|WP_Post, int\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/extras.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$post of function get_the_title expects int\\|WP_Post, int\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/extras.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$url of function esc_url expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/extras.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$callback of function add_filter expects callable\\(\\)\\: mixed, 'understrap_adjust…' given\\.$#"
|
||||
count: 1
|
||||
path: inc/extras.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, array\\|string\\|false given\\.$#"
|
||||
count: 2
|
||||
path: inc/hooks.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$name of function get_template_part expects string\\|null, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/jetpack.php
|
||||
|
||||
-
|
||||
message: "#^Argument of an invalid type array\\|string\\|void supplied for foreach, only iterables are supported\\.$#"
|
||||
count: 1
|
||||
path: inc/pagination.php
|
||||
|
||||
-
|
||||
message: "#^Cannot assign offset 'total' to array\\|string\\.$#"
|
||||
count: 1
|
||||
path: inc/pagination.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_pagination\\(\\) has parameter \\$args with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/pagination.php
|
||||
|
||||
-
|
||||
message: "#^Cannot access property \\$post_parent on WP_Post\\|null\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$author_id of function get_author_posts_url expects int, string given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$text of function esc_attr expects string, int\\|string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$text of function esc_attr expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$text of function esc_html expects string, int\\|string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$text of function esc_html expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$text of function esc_html expects string, string\\|null given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$url of function esc_url expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\.\\.\\.\\$values of function printf expects bool\\|float\\|int\\|string\\|null, string\\|WP_Error given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, string\\|void given\\.$#"
|
||||
count: 1
|
||||
path: inc/template-tags.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_get_theme_default_settings\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/theme-settings.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_widget_classes\\(\\) has parameter \\$params with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/widgets.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_widget_classes\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/widgets.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_quantity_input_classes\\(\\) has parameter \\$classes with no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/woocommerce.php
|
||||
|
||||
-
|
||||
message: "#^Function understrap_quantity_input_classes\\(\\) return type has no value type specified in iterable type array\\.$#"
|
||||
count: 1
|
||||
path: inc/woocommerce.php
|
||||
|
||||
-
|
||||
message: "#^Offset 'type' does not exist on string\\.$#"
|
||||
count: 1
|
||||
path: inc/woocommerce.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$text of function esc_attr expects string, mixed given\\.$#"
|
||||
count: 1
|
||||
path: inc/woocommerce.php
|
||||
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
#$ vendor/bin/phpstan analyze
|
||||
|
||||
includes:
|
||||
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
|
||||
- vendor/szepeviktor/phpstan-wordpress/extension.neon
|
||||
- phpstan-baseline.neon
|
||||
parameters:
|
||||
level: max
|
||||
paths:
|
||||
- inc/
|
||||
excludePaths:
|
||||
- inc/deprecated.php
|
||||
- inc/class-wp-bootstrap-navwalker.php
|
||||
tmpDir: .phpstan-cache
|
||||
ignoreErrors:
|
||||
- '#Function understrap_block_editor_setup\(\) has no return type specified.#'
|
||||
- '#Function understrap_custom_header_setup\(\) has no return type specified.#'
|
||||
- '#Function understrap_comment_form_comments_closed\(\) has no return type specified.#'
|
||||
- '#Function understrap_customize_register\(\) has no return type specified.#'
|
||||
- '#Function understrap_theme_customize_register\(\) has no return type specified.#'
|
||||
- '#Function understrap_customize_preview_js\(\) has no return type specified.#'
|
||||
- '#Function understrap_customize_controls_js\(\) has no return type specified.#'
|
||||
- '#Function understrap_wpdocs_theme_add_editor_styles\(\) has no return type specified.#'
|
||||
- '#Function understrap_scripts\(\) has no return type specified.#'
|
||||
- '#Function understrap_pingback\(\) has no return type specified.#'
|
||||
- '#Function understrap_mobile_web_app_meta\(\) has no return type specified.#'
|
||||
- '#Function understrap_add_site_info\(\) has no return type specified.#'
|
||||
- '#Function understrap_site_info\(\) has no return type specified.#'
|
||||
- '#Function understrap_components_jetpack_setup\(\) has no return type specified.#'
|
||||
- '#Function understrap_components_infinite_scroll_render\(\) has no return type specified.#'
|
||||
- '#Function understrap_components_social_menu\(\) has no return type specified.#'
|
||||
- '#Function understrap_pagination\(\) has no return type specified.#'
|
||||
- '#Function understrap_setup\(\) has no return type specified.#'
|
||||
- '#Function understrap_posted_on\(\) has no return type specified.#'
|
||||
- '#Function understrap_entry_footer\(\) has no return type specified.#'
|
||||
- '#Function understrap_category_transient_flusher\(\) has no return type specified.#'
|
||||
- '#Function understrap_body_attributes\(\) has no return type specified.#'
|
||||
- '#Function understrap_comment_navigation\(\) has no return type specified.#'
|
||||
- '#Function understrap_edit_post_link\(\) has no return type specified.#'
|
||||
- '#Function understrap_post_nav\(\) has no return type specified.#'
|
||||
- '#Function understrap_setup_theme_default_settings\(\) has no return type specified.#'
|
||||
- '#Function understrap_widgets_init\(\) has no return type specified.#'
|
||||
- '#Function understrap_woocommerce_support\(\) has no return type specified.#'
|
||||
- '#Function understrap_woocommerce_wrapper_start\(\) has no return type specified.#'
|
||||
- '#Function understrap_woocommerce_wrapper_end\(\) has no return type specified.#'
|
||||
- '#Function understrap_wpcom_setup\(\) has no return type specified.#'
|
||||
- '#Function understrap_wpcom_styles\(\) has no return type specified.#'
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
'use strict'
|
||||
|
||||
const pkg = require('../../package.json')
|
||||
const year = new Date().getFullYear()
|
||||
|
||||
function getBanner(pluginFilename) {
|
||||
return `/*!
|
||||
* Understrap${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage})
|
||||
* Copyright 2013-${year} ${pkg.author}
|
||||
* Licensed under GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
|
||||
*/`
|
||||
}
|
||||
|
||||
module.exports = getBanner
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
'use strict'
|
||||
|
||||
module.exports = ctx => {
|
||||
return {
|
||||
map: {
|
||||
inline: false,
|
||||
annotation: true,
|
||||
sourcesContent: true
|
||||
},
|
||||
plugins: {
|
||||
autoprefixer: {
|
||||
cascade: false
|
||||
},
|
||||
"postcss-understrap-palette-generator" : {
|
||||
colors: [
|
||||
"--blue",
|
||||
"--indigo",
|
||||
"--purple",
|
||||
"--pink",
|
||||
"--red",
|
||||
"--orange",
|
||||
"--yellow",
|
||||
"--green",
|
||||
"--teal",
|
||||
"--cyan",
|
||||
"--white",
|
||||
"--gray",
|
||||
"--gray-dark"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
'use strict'
|
||||
|
||||
const path = require('path')
|
||||
const { babel } = require('@rollup/plugin-babel')
|
||||
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
||||
import multi from '@rollup/plugin-multi-entry'
|
||||
const banner = require('./banner.js')
|
||||
|
||||
let fileDest = 'theme-bootstrap4.js'
|
||||
const external = ['jquery']
|
||||
const plugins = [
|
||||
babel({
|
||||
// Only transpile our source code
|
||||
exclude: 'node_modules/**',
|
||||
// Include the helpers in the bundle, at most one copy of each
|
||||
babelHelpers: 'bundled'
|
||||
}),
|
||||
nodeResolve(),
|
||||
multi()
|
||||
]
|
||||
const globals = {
|
||||
jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode
|
||||
'popper.js': 'Popper'
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
input: [path.resolve(__dirname, '../js/bootstrap4.js'), path.resolve(__dirname, '../js/skip-link-focus-fix.js'), path.resolve(__dirname, '../js/custom-javascript.js')],
|
||||
output: {
|
||||
banner,
|
||||
file: path.resolve(__dirname, `../../js/${fileDest}`),
|
||||
format: 'umd',
|
||||
globals,
|
||||
name: 'understrap'
|
||||
},
|
||||
external,
|
||||
plugins
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"parse": {
|
||||
},
|
||||
"compress": {
|
||||
"booleans": true,
|
||||
"conditionals": true,
|
||||
"drop_console": true,
|
||||
"drop_debugger": true,
|
||||
"if_return": true,
|
||||
"join_vars": true,
|
||||
"keep_classnames": false,
|
||||
"keep_fnames": false,
|
||||
"reduce_vars": true,
|
||||
"sequences": true,
|
||||
"warnings": false,
|
||||
"ecma": 5
|
||||
},
|
||||
"mangle": {
|
||||
},
|
||||
"sourceMap": {
|
||||
"filename": "js/theme-bootstrap4.js.map",
|
||||
"url": "theme-bootstrap4.min.js.map"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
module.exports = {
|
||||
presets: [
|
||||
[
|
||||
'@babel/preset-env',
|
||||
{
|
||||
loose: true,
|
||||
bugfixes: true,
|
||||
modules: false,
|
||||
},
|
||||
],
|
||||
],
|
||||
};
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
'use strict'
|
||||
'use strict';
|
||||
|
||||
const pkg = require('../../package.json')
|
||||
const year = new Date().getFullYear()
|
||||
const pkg = require( '../../package.json' );
|
||||
const year = new Date().getFullYear();
|
||||
|
||||
function getBanner(pluginFilename) {
|
||||
return `/*!
|
||||
* Understrap${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage})
|
||||
* Copyright 2013-${year} ${pkg.author}
|
||||
* Licensed under GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
|
||||
*/`
|
||||
function getBanner( pluginFilename ) {
|
||||
return `/*!
|
||||
* Understrap${ pluginFilename ? ` ${ pluginFilename }` : '' } v${ pkg.version } (${ pkg.homepage })
|
||||
* Copyright 2013-${ year } ${ pkg.author }
|
||||
* Licensed under GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
|
||||
*/`;
|
||||
}
|
||||
|
||||
module.exports = getBanner
|
||||
module.exports = getBanner;
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
const { promises: fs } = require("fs")
|
||||
const path = require("path")
|
||||
const { promises: fs } = require( 'fs' );
|
||||
const path = require( 'path' );
|
||||
|
||||
async function copyDir(src, dest) {
|
||||
await fs.mkdir(dest, { recursive: true });
|
||||
let entries = await fs.readdir(src, { withFileTypes: true });
|
||||
async function copyDir( src, dest ) {
|
||||
await fs.mkdir( dest, { recursive: true } );
|
||||
const entries = await fs.readdir( src, { withFileTypes: true } );
|
||||
|
||||
for (let entry of entries) {
|
||||
let srcPath = path.join(src, entry.name);
|
||||
let destPath = path.join(dest, entry.name);
|
||||
for ( let entry of entries ) {
|
||||
let srcPath = path.join( src, entry.name );
|
||||
let destPath = path.join( dest, entry.name );
|
||||
|
||||
entry.isDirectory() ?
|
||||
await copyDir(srcPath, destPath) :
|
||||
await fs.copyFile(srcPath, destPath);
|
||||
}
|
||||
entry.isDirectory()
|
||||
? await copyDir( srcPath, destPath )
|
||||
: await fs.copyFile( srcPath, destPath );
|
||||
}
|
||||
}
|
||||
|
||||
// Copy all Bootstrap SCSS files.
|
||||
copyDir('./node_modules/bootstrap4/scss', './src/sass/assets/bootstrap4');
|
||||
copyDir('./node_modules/bootstrap/scss', './src/sass/assets/bootstrap5');
|
||||
copyDir( './node_modules/bootstrap4/scss', './src/sass/assets/bootstrap4' );
|
||||
copyDir( './node_modules/bootstrap/scss', './src/sass/assets/bootstrap5' );
|
||||
// Copy all Font Awesome SCSS files.
|
||||
copyDir('./node_modules/font-awesome/scss', './src/sass/assets/fontawesome');
|
||||
copyDir( './node_modules/font-awesome/scss', './src/sass/assets/fontawesome' );
|
||||
|
|
|
|||
|
|
@ -1,40 +1,39 @@
|
|||
const { promises: fs } = require("fs")
|
||||
const path = require("path")
|
||||
const { promises: fs } = require( 'fs' );
|
||||
const path = require( 'path' );
|
||||
const pkg = require( '../../package.json' );
|
||||
|
||||
async function copyDir(src, dest) {
|
||||
await fs.mkdir(dest, { recursive: true });
|
||||
let entries = await fs.readdir(src, { withFileTypes: true });
|
||||
let ignore = [
|
||||
'node_modules',
|
||||
async function copyDir( src, dest ) {
|
||||
await fs.mkdir( dest, { recursive: true } );
|
||||
let entries = await fs.readdir( src, { withFileTypes: true } );
|
||||
// Exclude all dot files and directories.
|
||||
entries = entries.filter( dirent => ! dirent.name.startsWith('.') );
|
||||
const ignore = [
|
||||
'dist',
|
||||
'node_modules',
|
||||
'src',
|
||||
'.github',
|
||||
'.browserslistrc',
|
||||
'.editorconfig',
|
||||
'.gitattributes',
|
||||
'.gitignore',
|
||||
'.jscsrc',
|
||||
'.jshintignore',
|
||||
'.travis.yml',
|
||||
'vendor',
|
||||
'composer.json',
|
||||
'composer.lock',
|
||||
'package.json',
|
||||
'package-lock.json',
|
||||
'phpcs.xml.dist',
|
||||
'readme.txt'
|
||||
'phpmd.baseline.xml',
|
||||
'phpmd.xml',
|
||||
'phpstan-baseline.neon',
|
||||
'phpstan.neon.dist',
|
||||
];
|
||||
|
||||
for (let entry of entries) {
|
||||
for ( const entry of entries ) {
|
||||
if ( ignore.indexOf( entry.name ) != -1 ) {
|
||||
continue;
|
||||
}
|
||||
let srcPath = path.join(src, entry.name);
|
||||
let destPath = path.join(dest, entry.name);
|
||||
let srcPath = path.join( src, entry.name );
|
||||
let destPath = path.join( dest, entry.name );
|
||||
|
||||
entry.isDirectory() ?
|
||||
await copyDir(srcPath, destPath) :
|
||||
await fs.copyFile(srcPath, destPath);
|
||||
}
|
||||
entry.isDirectory()
|
||||
? await copyDir( srcPath, destPath )
|
||||
: await fs.copyFile( srcPath, destPath );
|
||||
}
|
||||
}
|
||||
|
||||
copyDir('./', './dist');
|
||||
copyDir( './', `./dist/${ pkg.name }-${ pkg.version }` );
|
||||
|
|
|
|||
|
|
@ -1,15 +1,20 @@
|
|||
const del = require('del');
|
||||
/* eslint-disable no-console, eslint-comments/disable-enable-pair */
|
||||
|
||||
// directory path
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* External dependencies
|
||||
*/
|
||||
const { rm } = require( 'fs' );
|
||||
|
||||
// Directory path.
|
||||
const dir = './dist';
|
||||
|
||||
// delete directory recursively
|
||||
(async () => {
|
||||
try {
|
||||
await del(dir);
|
||||
|
||||
console.log(`${dir} is deleted!`);
|
||||
} catch (err) {
|
||||
console.error(`Error while deleting ${dir}.`);
|
||||
}
|
||||
})();
|
||||
// Delete directory recursively.
|
||||
rm( dir, { recursive: true }, ( error ) => {
|
||||
if ( error ) {
|
||||
console.error( error.name + ': ' + error.message + '\n' );
|
||||
} else {
|
||||
console.log( dir + ' is deleted!\n' );
|
||||
}
|
||||
} );
|
||||
|
|
|
|||
|
|
@ -1,33 +1,41 @@
|
|||
'use strict'
|
||||
'use strict';
|
||||
|
||||
module.exports = ctx => {
|
||||
return {
|
||||
map: {
|
||||
inline: false,
|
||||
annotation: true,
|
||||
sourcesContent: true
|
||||
},
|
||||
plugins: {
|
||||
autoprefixer: {
|
||||
cascade: false
|
||||
},
|
||||
"postcss-understrap-palette-generator" : {
|
||||
colors: [
|
||||
"--bs-blue",
|
||||
"--bs-indigo",
|
||||
"--bs-purple",
|
||||
"--bs-pink",
|
||||
"--bs-red",
|
||||
"--bs-orange",
|
||||
"--bs-yellow",
|
||||
"--bs-green",
|
||||
"--bs-teal",
|
||||
"--bs-cyan",
|
||||
"--bs-white",
|
||||
"--bs-gray",
|
||||
"--bs-gray-dark"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const process = require( 'process' );
|
||||
|
||||
const colors = [
|
||||
'blue',
|
||||
'indigo',
|
||||
'purple',
|
||||
'pink',
|
||||
'red',
|
||||
'orange',
|
||||
'yellow',
|
||||
'green',
|
||||
'teal',
|
||||
'cyan',
|
||||
'white',
|
||||
'gray',
|
||||
'gray-dark',
|
||||
];
|
||||
|
||||
const BS4 = process.argv[ process.argv.length - 1 ] === 'BS4';
|
||||
const colorInfix = BS4 ? '' : 'bs-';
|
||||
|
||||
module.exports = ( ctx ) => {
|
||||
return {
|
||||
map: {
|
||||
inline: false,
|
||||
annotation: true,
|
||||
sourcesContent: true,
|
||||
},
|
||||
plugins: {
|
||||
autoprefixer: {
|
||||
cascade: false,
|
||||
env: BS4 ? 'bs4' : 'bs5',
|
||||
},
|
||||
'postcss-understrap-palette-generator': {
|
||||
colors: colors.map( ( x ) => `--${ colorInfix }${ x }` ),
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,44 +1,79 @@
|
|||
'use strict'
|
||||
'use strict';
|
||||
|
||||
const path = require('path')
|
||||
const { babel } = require('@rollup/plugin-babel')
|
||||
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
||||
import commonjs from '@rollup/plugin-commonjs'
|
||||
import multi from '@rollup/plugin-multi-entry'
|
||||
const replace = require('@rollup/plugin-replace')
|
||||
const banner = require('./banner.js')
|
||||
/**
|
||||
* External dependencies
|
||||
*/
|
||||
const path = require( 'path' );
|
||||
const { babel } = require( '@rollup/plugin-babel' );
|
||||
const { nodeResolve } = require( '@rollup/plugin-node-resolve' );
|
||||
const commonjs = require( '@rollup/plugin-commonjs' );
|
||||
const multi = require( '@rollup/plugin-multi-entry' );
|
||||
const replace = require( '@rollup/plugin-replace' );
|
||||
|
||||
let fileDest = 'theme.js'
|
||||
const external = ['jquery']
|
||||
const plugins = [
|
||||
babel({
|
||||
// Only transpile our source code
|
||||
exclude: 'node_modules/**',
|
||||
// Include the helpers in the bundle, at most one copy of each
|
||||
babelHelpers: 'bundled'
|
||||
}),
|
||||
replace({
|
||||
'process.env.NODE_ENV': '"production"',
|
||||
preventAssignment: true
|
||||
}),
|
||||
nodeResolve(),
|
||||
commonjs(),
|
||||
multi()
|
||||
]
|
||||
const globals = {
|
||||
jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode
|
||||
/**
|
||||
* Internal dependencies
|
||||
*/
|
||||
const banner = require( './banner.js' );
|
||||
|
||||
// Determine if we want to build for Bootstrap v4 or v5.
|
||||
const BS4 = process.argv[ process.argv.length - 1 ] === 'BS4';
|
||||
|
||||
// Populate Bootstrap version specific variables.
|
||||
let bsVersion = 5;
|
||||
let bsSrcFile = 'bootstrap.js';
|
||||
let fileDest = 'theme';
|
||||
let globals = {
|
||||
jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode
|
||||
'@popperjs/core': 'Popper',
|
||||
};
|
||||
if ( BS4 ) {
|
||||
// Adjustments for Bootstrap version 4.
|
||||
bsVersion = 4;
|
||||
bsSrcFile = 'bootstrap4.js';
|
||||
fileDest = 'theme-bootstrap4';
|
||||
delete globals[ '@popperjs/core' ];
|
||||
Object.assign( globals, { 'popper.js': 'Popper' } );
|
||||
}
|
||||
|
||||
const external = [ 'jquery' ];
|
||||
|
||||
const plugins = [
|
||||
babel( {
|
||||
browserslistEnv: `bs${ bsVersion }`,
|
||||
// Include the helpers in the bundle, at most one copy of each.
|
||||
babelHelpers: 'bundled',
|
||||
} ),
|
||||
replace( {
|
||||
'process.env.NODE_ENV': '"production"',
|
||||
preventAssignment: true,
|
||||
} ),
|
||||
nodeResolve(),
|
||||
commonjs(),
|
||||
multi(),
|
||||
];
|
||||
|
||||
module.exports = {
|
||||
input: [path.resolve(__dirname, '../js/bootstrap.js'), path.resolve(__dirname, '../js/skip-link-focus-fix.js'), path.resolve(__dirname, '../js/custom-javascript.js')],
|
||||
output: {
|
||||
banner,
|
||||
file: path.resolve(__dirname, `../../js/${fileDest}`),
|
||||
format: 'umd',
|
||||
globals,
|
||||
name: 'understrap'
|
||||
},
|
||||
external,
|
||||
plugins
|
||||
}
|
||||
input: [
|
||||
path.resolve( __dirname, `../js/${ bsSrcFile }` ),
|
||||
path.resolve( __dirname, '../js/skip-link-focus-fix.js' ),
|
||||
path.resolve( __dirname, '../js/custom-javascript.js' ),
|
||||
],
|
||||
output: [
|
||||
{
|
||||
banner,
|
||||
file: path.resolve( __dirname, `../../js/${ fileDest }.js` ),
|
||||
format: 'umd',
|
||||
globals,
|
||||
name: 'understrap',
|
||||
},
|
||||
{
|
||||
banner,
|
||||
file: path.resolve( __dirname, `../../js/${ fileDest }.min.js` ),
|
||||
format: 'umd',
|
||||
globals,
|
||||
name: 'understrap',
|
||||
},
|
||||
],
|
||||
external,
|
||||
plugins,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
"mangle": {
|
||||
},
|
||||
"sourceMap": {
|
||||
"filename": "js/theme.js.map",
|
||||
"url": "theme.min.js.map"
|
||||
"includeSources": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,27 +1,12 @@
|
|||
import Alert from 'bootstrap/js/dist/alert'
|
||||
import Button from 'bootstrap/js/dist/button'
|
||||
import Carousel from 'bootstrap/js/dist/carousel'
|
||||
import Collapse from 'bootstrap/js/dist/collapse'
|
||||
import Dropdown from 'bootstrap/js/dist/dropdown'
|
||||
import Modal from 'bootstrap/js/dist/modal'
|
||||
import Offcanvas from 'bootstrap/js/dist/offcanvas'
|
||||
import Popover from 'bootstrap/js/dist/popover'
|
||||
import Scrollspy from 'bootstrap/js/dist/scrollspy'
|
||||
import Tab from 'bootstrap/js/dist/tab'
|
||||
import Toast from 'bootstrap/js/dist/toast'
|
||||
import Tooltip from 'bootstrap/js/dist/tooltip'
|
||||
|
||||
export {
|
||||
Alert,
|
||||
Button,
|
||||
Carousel,
|
||||
Collapse,
|
||||
Dropdown,
|
||||
Modal,
|
||||
Offcanvas,
|
||||
Popover,
|
||||
Scrollspy,
|
||||
Tab,
|
||||
Toast,
|
||||
Tooltip
|
||||
}
|
||||
export { default as Alert } from 'bootstrap/js/src/alert';
|
||||
export { default as Button } from 'bootstrap/js/src/button';
|
||||
export { default as Carousel } from 'bootstrap/js/src/carousel';
|
||||
export { default as Collapse } from 'bootstrap/js/src/collapse';
|
||||
export { default as Dropdown } from 'bootstrap/js/src/dropdown';
|
||||
export { default as Modal } from 'bootstrap/js/src/modal';
|
||||
export { default as Offcanvas } from 'bootstrap/js/src/offcanvas';
|
||||
export { default as Popover } from 'bootstrap/js/src/popover';
|
||||
export { default as ScrollSpy } from 'bootstrap/js/src/scrollspy';
|
||||
export { default as Tab } from 'bootstrap/js/src/tab';
|
||||
export { default as Toast } from 'bootstrap/js/src/toast';
|
||||
export { default as Tooltip } from 'bootstrap/js/src/tooltip';
|
||||
|
|
|
|||
|
|
@ -1,29 +1,11 @@
|
|||
import Popper from 'popper.js/dist/popper.js' // Needs to be included for tooltips and popover
|
||||
import Alert from 'bootstrap4/js/src/alert'
|
||||
import Button from 'bootstrap4/js/src/button'
|
||||
import Carousel from 'bootstrap4/js/src/carousel'
|
||||
import Collapse from 'bootstrap4/js/src/collapse'
|
||||
import Dropdown from 'bootstrap4/js/src/dropdown'
|
||||
import Modal from 'bootstrap4/js/src/modal'
|
||||
import Popover from 'bootstrap4/js/src/popover'
|
||||
import Scrollspy from 'bootstrap4/js/src/scrollspy'
|
||||
import Tab from 'bootstrap4/js/src/tab'
|
||||
import Toast from 'bootstrap4/js/src/toast'
|
||||
import Tooltip from 'bootstrap4/js/src/tooltip'
|
||||
import Util from 'bootstrap4/js/src/util'
|
||||
|
||||
export {
|
||||
Popper,
|
||||
Util,
|
||||
Alert,
|
||||
Button,
|
||||
Carousel,
|
||||
Collapse,
|
||||
Dropdown,
|
||||
Modal,
|
||||
Popover,
|
||||
Scrollspy,
|
||||
Tab,
|
||||
Toast,
|
||||
Tooltip
|
||||
}
|
||||
export { default as Alert } from 'bootstrap4/js/src/alert';
|
||||
export { default as Button } from 'bootstrap4/js/src/button';
|
||||
export { default as Carousel } from 'bootstrap4/js/src/carousel';
|
||||
export { default as Collapse } from 'bootstrap4/js/src/collapse';
|
||||
export { default as Dropdown } from 'bootstrap4/js/src/dropdown';
|
||||
export { default as Modal } from 'bootstrap4/js/src/modal';
|
||||
export { default as Popover } from 'bootstrap4/js/src/popover';
|
||||
export { default as Scrollspy } from 'bootstrap4/js/src/scrollspy';
|
||||
export { default as Tab } from 'bootstrap4/js/src/tab';
|
||||
export { default as Toast } from 'bootstrap4/js/src/toast';
|
||||
export { default as Tooltip } from 'bootstrap4/js/src/tooltip';
|
||||
|
|
|
|||
|
|
@ -5,29 +5,41 @@
|
|||
*
|
||||
* Learn more: https://git.io/vWdr2
|
||||
*/
|
||||
( function() {
|
||||
var isWebkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1,
|
||||
isOpera = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1,
|
||||
isIe = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1;
|
||||
( () => {
|
||||
const isWebkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1,
|
||||
isOpera = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1,
|
||||
isIe = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1;
|
||||
|
||||
if ( ( isWebkit || isOpera || isIe ) && document.getElementById && window.addEventListener ) {
|
||||
window.addEventListener( 'hashchange', function() {
|
||||
var id = location.hash.substring( 1 ),
|
||||
element;
|
||||
if (
|
||||
( isWebkit || isOpera || isIe ) &&
|
||||
document.getElementById &&
|
||||
window.addEventListener
|
||||
) {
|
||||
window.addEventListener(
|
||||
'hashchange',
|
||||
() => {
|
||||
let id = location.hash.substring( 1 ),
|
||||
element;
|
||||
|
||||
if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
element = document.getElementById( id );
|
||||
|
||||
if ( element ) {
|
||||
if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {
|
||||
element.tabIndex = -1;
|
||||
if ( ! /^[A-z0-9_-]+$/.test( id ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
element.focus();
|
||||
}
|
||||
}, false );
|
||||
element = document.getElementById( id );
|
||||
|
||||
if ( element ) {
|
||||
if (
|
||||
! /^(?:a|select|input|button|textarea)$/i.test(
|
||||
element.tagName
|
||||
)
|
||||
) {
|
||||
element.tabIndex = -1;
|
||||
}
|
||||
|
||||
element.focus();
|
||||
}
|
||||
},
|
||||
false
|
||||
);
|
||||
}
|
||||
})();
|
||||
} )();
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@
|
|||
}
|
||||
|
||||
.card-subtitle {
|
||||
margin-top: -$card-spacer-y / 2;
|
||||
margin-top: -$card-spacer-y * .5;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
|
|
@ -109,15 +109,15 @@
|
|||
//
|
||||
|
||||
.card-header-tabs {
|
||||
margin-right: -$card-spacer-x / 2;
|
||||
margin-right: -$card-spacer-x * .5;
|
||||
margin-bottom: -$card-spacer-y;
|
||||
margin-left: -$card-spacer-x / 2;
|
||||
margin-left: -$card-spacer-x * .5;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.card-header-pills {
|
||||
margin-right: -$card-spacer-x / 2;
|
||||
margin-left: -$card-spacer-x / 2;
|
||||
margin-right: -$card-spacer-x * .5;
|
||||
margin-left: -$card-spacer-x * .5;
|
||||
}
|
||||
|
||||
// Card image
|
||||
|
|
|
|||
|
|
@ -95,8 +95,11 @@
|
|||
align-items: center; // 2. vertically center contents
|
||||
justify-content: center; // 3. horizontally center contents
|
||||
width: $carousel-control-width;
|
||||
padding: 0;
|
||||
color: $carousel-control-color;
|
||||
text-align: center;
|
||||
background: none;
|
||||
border: 0;
|
||||
opacity: $carousel-control-opacity;
|
||||
@include transition($carousel-control-transition);
|
||||
|
||||
|
|
@ -186,9 +189,9 @@
|
|||
|
||||
.carousel-caption {
|
||||
position: absolute;
|
||||
right: (100% - $carousel-caption-width) / 2;
|
||||
right: (100% - $carousel-caption-width) * .5;
|
||||
bottom: 20px;
|
||||
left: (100% - $carousel-caption-width) / 2;
|
||||
left: (100% - $carousel-caption-width) * .5;
|
||||
z-index: 10;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
left: 0;
|
||||
z-index: -1; // Put the input behind the label so it doesn't overlay text
|
||||
width: $custom-control-indicator-size;
|
||||
height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;
|
||||
height: ($font-size-base * $line-height-base + $custom-control-indicator-size) * .5;
|
||||
opacity: 0;
|
||||
|
||||
&:checked ~ .custom-control-label::before {
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
// Background-color and (when enabled) gradient
|
||||
&::before {
|
||||
position: absolute;
|
||||
top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;
|
||||
top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
|
||||
left: -($custom-control-gutter + $custom-control-indicator-size);
|
||||
display: block;
|
||||
width: $custom-control-indicator-size;
|
||||
|
|
@ -98,7 +98,7 @@
|
|||
// Foreground (icon)
|
||||
&::after {
|
||||
position: absolute;
|
||||
top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;
|
||||
top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
|
||||
left: -($custom-control-gutter + $custom-control-indicator-size);
|
||||
display: block;
|
||||
width: $custom-control-indicator-size;
|
||||
|
|
@ -186,7 +186,7 @@
|
|||
}
|
||||
|
||||
&::after {
|
||||
top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);
|
||||
top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) * .5, $custom-control-indicator-border-width * 2);
|
||||
left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);
|
||||
width: $custom-switch-indicator-size;
|
||||
height: $custom-switch-indicator-size;
|
||||
|
|
@ -406,7 +406,7 @@
|
|||
&::-webkit-slider-thumb {
|
||||
width: $custom-range-thumb-width;
|
||||
height: $custom-range-thumb-height;
|
||||
margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific
|
||||
margin-top: ($custom-range-track-height - $custom-range-thumb-height) * .5; // Webkit specific
|
||||
@include gradient-bg($custom-range-thumb-bg);
|
||||
border: $custom-range-thumb-border;
|
||||
@include border-radius($custom-range-thumb-border-radius);
|
||||
|
|
@ -481,7 +481,7 @@
|
|||
cursor: $custom-range-track-cursor;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
border-width: $custom-range-thumb-height / 2;
|
||||
border-width: $custom-range-thumb-height * .5;
|
||||
@include box-shadow($custom-range-track-box-shadow);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,12 +30,6 @@
|
|||
border: 0;
|
||||
}
|
||||
|
||||
// Remove select outline from select box in FF
|
||||
&:-moz-focusring {
|
||||
color: transparent;
|
||||
text-shadow: 0 0 0 $input-color;
|
||||
}
|
||||
|
||||
// Customize the `:focus` state to imitate native WebKit styles.
|
||||
@include form-control-focus($ignore-warning: true);
|
||||
|
||||
|
|
@ -69,6 +63,12 @@ input[type="month"] {
|
|||
}
|
||||
|
||||
select.form-control {
|
||||
// Remove select outline from select box in FF
|
||||
&:-moz-focusring {
|
||||
color: transparent;
|
||||
text-shadow: 0 0 0 $input-color;
|
||||
}
|
||||
|
||||
&:focus::-ms-value {
|
||||
// Suppress the nested default white text on blue background highlight given to
|
||||
// the selected option text when the (still closed) <select> receives focus
|
||||
|
|
@ -199,13 +199,13 @@ textarea.form-control {
|
|||
.form-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-right: -$form-grid-gutter-width / 2;
|
||||
margin-left: -$form-grid-gutter-width / 2;
|
||||
margin-right: -$form-grid-gutter-width * .5;
|
||||
margin-left: -$form-grid-gutter-width * .5;
|
||||
|
||||
> .col,
|
||||
> [class*="col-"] {
|
||||
padding-right: $form-grid-gutter-width / 2;
|
||||
padding-left: $form-grid-gutter-width / 2;
|
||||
padding-right: $form-grid-gutter-width * .5;
|
||||
padding-left: $form-grid-gutter-width * .5;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
$g: green($color);
|
||||
$b: blue($color);
|
||||
|
||||
$yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
|
||||
$yiq: (($r * 299) + ($g * 587) + ($b * 114)) * .001;
|
||||
|
||||
@if ($yiq >= $yiq-contrasted-threshold) {
|
||||
@return $dark;
|
||||
|
|
@ -140,5 +140,51 @@
|
|||
@return $value1 - $value2;
|
||||
}
|
||||
|
||||
@if type-of($value2) != number {
|
||||
$value2: unquote("(") + $value2 + unquote(")");
|
||||
}
|
||||
|
||||
@return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
|
||||
}
|
||||
|
||||
@function divide($dividend, $divisor, $precision: 10) {
|
||||
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
|
||||
$dividend: abs($dividend);
|
||||
$divisor: abs($divisor);
|
||||
@if $dividend == 0 {
|
||||
@return 0;
|
||||
}
|
||||
@if $divisor == 0 {
|
||||
@error "Cannot divide by 0";
|
||||
}
|
||||
$remainder: $dividend;
|
||||
$result: 0;
|
||||
$factor: 10;
|
||||
@while ($remainder > 0 and $precision >= 0) {
|
||||
$quotient: 0;
|
||||
@while ($remainder >= $divisor) {
|
||||
$remainder: $remainder - $divisor;
|
||||
$quotient: $quotient + 1;
|
||||
}
|
||||
$result: $result * 10 + $quotient;
|
||||
$factor: $factor * .1;
|
||||
$remainder: $remainder * 10;
|
||||
$precision: $precision - 1;
|
||||
@if ($precision < 0 and $remainder >= $divisor * 5) {
|
||||
$result: $result + 1;
|
||||
}
|
||||
}
|
||||
$result: $result * $factor * $sign;
|
||||
$dividend-unit: unit($dividend);
|
||||
$divisor-unit: unit($divisor);
|
||||
$unit-map: (
|
||||
"px": 1px,
|
||||
"rem": 1rem,
|
||||
"em": 1em,
|
||||
"%": 1%
|
||||
);
|
||||
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
|
||||
$result: $result * map-get($unit-map, $dividend-unit);
|
||||
}
|
||||
@return $result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
}
|
||||
|
||||
.figure-img {
|
||||
margin-bottom: $spacer / 2;
|
||||
margin-bottom: $spacer * .5;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,12 +52,14 @@
|
|||
align-items: center;
|
||||
|
||||
&:not(:last-child) .custom-file-label,
|
||||
&:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }
|
||||
&:not(:first-child) .custom-file-label { @include border-left-radius(0); }
|
||||
}
|
||||
|
||||
&:not(.has-validation) {
|
||||
> .form-control:not(:last-child),
|
||||
> .custom-select:not(:last-child),
|
||||
> .custom-file:not(:last-child) .custom-file-label,
|
||||
> .custom-file:not(:last-child) .custom-file-label::after {
|
||||
@include border-right-radius(0);
|
||||
}
|
||||
|
|
@ -66,6 +68,7 @@
|
|||
&.has-validation {
|
||||
> .form-control:nth-last-child(n + 3),
|
||||
> .custom-select:nth-last-child(n + 3),
|
||||
> .custom-file:nth-last-child(n + 3) .custom-file-label,
|
||||
> .custom-file:nth-last-child(n + 3) .custom-file-label::after {
|
||||
@include border-right-radius(0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
.jumbotron {
|
||||
padding: $jumbotron-padding ($jumbotron-padding / 2);
|
||||
padding: $jumbotron-padding ($jumbotron-padding * .5);
|
||||
margin-bottom: $jumbotron-padding;
|
||||
color: $jumbotron-color;
|
||||
background-color: $jumbotron-bg;
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@
|
|||
flex-wrap: wrap;
|
||||
align-items: center; // vertically center
|
||||
justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
|
||||
padding: $modal-inner-padding - $modal-footer-margin-between / 2;
|
||||
padding: $modal-inner-padding - $modal-footer-margin-between * .5;
|
||||
border-top: $modal-footer-border-width solid $modal-footer-border-color;
|
||||
@include border-bottom-radius($modal-content-inner-border-radius);
|
||||
|
||||
|
|
@ -183,7 +183,7 @@
|
|||
// This solution is far from ideal because of the universal selector usage,
|
||||
// but is needed to fix https://github.com/twbs/bootstrap/issues/24800
|
||||
> * {
|
||||
margin: $modal-footer-margin-between / 2;
|
||||
margin: $modal-footer-margin-between * .5;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,13 +43,13 @@
|
|||
|
||||
&::before {
|
||||
bottom: 0;
|
||||
border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
|
||||
border-top-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
&::after {
|
||||
bottom: $popover-border-width;
|
||||
border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
|
||||
border-top-color: $popover-arrow-color;
|
||||
}
|
||||
}
|
||||
|
|
@ -66,13 +66,13 @@
|
|||
|
||||
&::before {
|
||||
left: 0;
|
||||
border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
|
||||
border-right-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
&::after {
|
||||
left: $popover-border-width;
|
||||
border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
|
||||
border-right-color: $popover-arrow-color;
|
||||
}
|
||||
}
|
||||
|
|
@ -86,13 +86,13 @@
|
|||
|
||||
&::before {
|
||||
top: 0;
|
||||
border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
|
||||
border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
|
||||
border-bottom-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
&::after {
|
||||
top: $popover-border-width;
|
||||
border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
|
||||
border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
|
||||
border-bottom-color: $popover-arrow-color;
|
||||
}
|
||||
}
|
||||
|
|
@ -104,7 +104,7 @@
|
|||
left: 50%;
|
||||
display: block;
|
||||
width: $popover-arrow-width;
|
||||
margin-left: -$popover-arrow-width / 2;
|
||||
margin-left: -$popover-arrow-width * .5;
|
||||
content: "";
|
||||
border-bottom: $popover-border-width solid $popover-header-bg;
|
||||
}
|
||||
|
|
@ -121,13 +121,13 @@
|
|||
|
||||
&::before {
|
||||
right: 0;
|
||||
border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
|
||||
border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
|
||||
border-left-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
&::after {
|
||||
right: $popover-border-width;
|
||||
border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
|
||||
border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
|
||||
border-left-color: $popover-arrow-color;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,15 +55,6 @@
|
|||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
//
|
||||
// Printing Tables:
|
||||
// https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
|
||||
//
|
||||
|
||||
thead {
|
||||
display: table-header-group;
|
||||
}
|
||||
|
||||
tr,
|
||||
img {
|
||||
page-break-inside: avoid;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
display: inline-block;
|
||||
width: $spinner-width;
|
||||
height: $spinner-height;
|
||||
vertical-align: text-bottom;
|
||||
vertical-align: $spinner-vertical-align;
|
||||
border: $spinner-border-width solid currentColor;
|
||||
border-right-color: transparent;
|
||||
// stylelint-disable-next-line property-disallowed-list
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
display: inline-block;
|
||||
width: $spinner-width;
|
||||
height: $spinner-height;
|
||||
vertical-align: text-bottom;
|
||||
vertical-align: $spinner-vertical-align;
|
||||
background-color: currentColor;
|
||||
// stylelint-disable-next-line property-disallowed-list
|
||||
border-radius: 50%;
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
&::before {
|
||||
top: 0;
|
||||
border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
|
||||
border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
|
||||
border-top-color: $tooltip-arrow-color;
|
||||
}
|
||||
}
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
|
||||
&::before {
|
||||
right: 0;
|
||||
border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
|
||||
border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
|
||||
border-right-color: $tooltip-arrow-color;
|
||||
}
|
||||
}
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
&::before {
|
||||
bottom: 0;
|
||||
border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
|
||||
border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
|
||||
border-bottom-color: $tooltip-arrow-color;
|
||||
}
|
||||
}
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
|
||||
&::before {
|
||||
left: 0;
|
||||
border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
|
||||
border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
|
||||
border-left-color: $tooltip-arrow-color;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -299,7 +299,7 @@ $h4-font-size: $font-size-base * 1.5 !default;
|
|||
$h5-font-size: $font-size-base * 1.25 !default;
|
||||
$h6-font-size: $font-size-base !default;
|
||||
|
||||
$headings-margin-bottom: $spacer / 2 !default;
|
||||
$headings-margin-bottom: $spacer * .5 !default;
|
||||
$headings-font-family: null !default;
|
||||
$headings-font-weight: 500 !default;
|
||||
$headings-line-height: 1.2 !default;
|
||||
|
|
@ -495,7 +495,7 @@ $input-height-border: $input-border-width * 2 !default;
|
|||
|
||||
$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;
|
||||
$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;
|
||||
$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;
|
||||
$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;
|
||||
|
||||
$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;
|
||||
$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
|
||||
|
|
@ -565,7 +565,7 @@ $custom-radio-indicator-border-radius: 50% !default;
|
|||
$custom-radio-indicator-icon-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>") !default;
|
||||
|
||||
$custom-switch-width: $custom-control-indicator-size * 1.75 !default;
|
||||
$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;
|
||||
$custom-switch-indicator-border-radius: $custom-control-indicator-size * .5 !default;
|
||||
$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;
|
||||
|
||||
$custom-select-padding-y: $input-padding-y !default;
|
||||
|
|
@ -710,12 +710,12 @@ $nav-pills-link-active-color: $component-active-color !default;
|
|||
$nav-pills-link-active-bg: $component-active-bg !default;
|
||||
|
||||
$nav-divider-color: $gray-200 !default;
|
||||
$nav-divider-margin-y: $spacer / 2 !default;
|
||||
$nav-divider-margin-y: $spacer * .5 !default;
|
||||
|
||||
|
||||
// Navbar
|
||||
|
||||
$navbar-padding-y: $spacer / 2 !default;
|
||||
$navbar-padding-y: $spacer * .5 !default;
|
||||
$navbar-padding-x: $spacer !default;
|
||||
|
||||
$navbar-nav-link-padding-x: .5rem !default;
|
||||
|
|
@ -724,7 +724,7 @@ $navbar-brand-font-size: $font-size-lg !default;
|
|||
// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
|
||||
$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
|
||||
$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
|
||||
$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;
|
||||
$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;
|
||||
|
||||
$navbar-toggler-padding-y: .25rem !default;
|
||||
$navbar-toggler-padding-x: .75rem !default;
|
||||
|
|
@ -821,6 +821,7 @@ $pagination-disabled-border-color: $gray-300 !default;
|
|||
$pagination-border-radius-sm: $border-radius-sm !default;
|
||||
$pagination-border-radius-lg: $border-radius-lg !default;
|
||||
|
||||
|
||||
// Jumbotron
|
||||
|
||||
$jumbotron-padding: 2rem !default;
|
||||
|
|
@ -844,7 +845,7 @@ $card-bg: $white !default;
|
|||
|
||||
$card-img-overlay-padding: 1.25rem !default;
|
||||
|
||||
$card-group-margin: $grid-gutter-width / 2 !default;
|
||||
$card-group-margin: $grid-gutter-width * .5 !default;
|
||||
$card-deck-margin: $card-group-margin !default;
|
||||
|
||||
$card-columns-count: 3 !default;
|
||||
|
|
@ -1100,9 +1101,10 @@ $carousel-transition: transform $carousel-transition-duration eas
|
|||
|
||||
// Spinners
|
||||
|
||||
$spinner-width: 2rem !default;
|
||||
$spinner-height: $spinner-width !default;
|
||||
$spinner-border-width: .25em !default;
|
||||
$spinner-width: 2rem !default;
|
||||
$spinner-height: $spinner-width !default;
|
||||
$spinner-vertical-align: -.125em !default;
|
||||
$spinner-border-width: .25em !default;
|
||||
|
||||
$spinner-width-sm: 1rem !default;
|
||||
$spinner-height-sm: $spinner-width-sm !default;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Bootstrap Grid v4.6.0 (https://getbootstrap.com/)
|
||||
* Bootstrap Grid v4.6.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)
|
||||
* Bootstrap Reboot v4.6.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Bootstrap v4.6.0 (https://getbootstrap.com/)
|
||||
* Bootstrap v4.6.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
// Align tooltip to form elements
|
||||
.form-row > .col > &,
|
||||
.form-row > [class*="col-"] > & {
|
||||
left: $form-grid-gutter-width / 2;
|
||||
left: $form-grid-gutter-width * .5;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -85,7 +85,7 @@
|
|||
border-color: $color;
|
||||
|
||||
@if $enable-validation-icons {
|
||||
padding-right: $input-height-inner;
|
||||
padding-right: $input-height-inner !important; // stylelint-disable-line declaration-no-important
|
||||
background-image: escape-svg($icon);
|
||||
background-repeat: no-repeat;
|
||||
background-position: right $input-height-inner-quarter center;
|
||||
|
|
@ -99,6 +99,16 @@
|
|||
}
|
||||
}
|
||||
|
||||
// stylelint-disable-next-line selector-no-qualifying-type
|
||||
select.form-control {
|
||||
@include form-validation-state-selector($state) {
|
||||
@if $enable-validation-icons {
|
||||
padding-right: $input-padding-x * 4 !important; // stylelint-disable-line declaration-no-important
|
||||
background-position: right $input-padding-x * 2 center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// stylelint-disable-next-line selector-no-qualifying-type
|
||||
textarea.form-control {
|
||||
@include form-validation-state-selector($state) {
|
||||
|
|
@ -114,7 +124,7 @@
|
|||
border-color: $color;
|
||||
|
||||
@if $enable-validation-icons {
|
||||
padding-right: $custom-select-feedback-icon-padding-right;
|
||||
padding-right: $custom-select-feedback-icon-padding-right !important; // stylelint-disable-line declaration-no-important
|
||||
background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
%grid-column {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-right: $gutter / 2;
|
||||
padding-left: $gutter / 2;
|
||||
padding-right: $gutter * .5;
|
||||
padding-left: $gutter * .5;
|
||||
}
|
||||
|
||||
@each $breakpoint in map-keys($breakpoints) {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
@mixin make-container($gutter: $grid-gutter-width) {
|
||||
width: 100%;
|
||||
padding-right: $gutter / 2;
|
||||
padding-left: $gutter / 2;
|
||||
padding-right: $gutter * .5;
|
||||
padding-left: $gutter * .5;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
|
@ -13,8 +13,8 @@
|
|||
@mixin make-row($gutter: $grid-gutter-width) {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-right: -$gutter / 2;
|
||||
margin-left: -$gutter / 2;
|
||||
margin-right: -$gutter * .5;
|
||||
margin-left: -$gutter * .5;
|
||||
}
|
||||
|
||||
// For each breakpoint, define the maximum width of the container in a media query
|
||||
|
|
@ -33,16 +33,16 @@
|
|||
// always setting `width: 100%;`. This works because we use `flex` values
|
||||
// later on to override this initial width.
|
||||
width: 100%;
|
||||
padding-right: $gutter / 2;
|
||||
padding-left: $gutter / 2;
|
||||
padding-right: $gutter * .5;
|
||||
padding-left: $gutter * .5;
|
||||
}
|
||||
|
||||
@mixin make-col($size, $columns: $grid-columns) {
|
||||
flex: 0 0 percentage($size / $columns);
|
||||
flex: 0 0 percentage(divide($size, $columns));
|
||||
// Add a `max-width` to ensure content within each column does not blow out
|
||||
// the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
|
||||
// do not appear to require this.
|
||||
max-width: percentage($size / $columns);
|
||||
max-width: percentage(divide($size, $columns));
|
||||
}
|
||||
|
||||
@mixin make-col-auto() {
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
}
|
||||
|
||||
@mixin make-col-offset($size, $columns: $grid-columns) {
|
||||
$num: $size / $columns;
|
||||
$num: divide($size, $columns);
|
||||
margin-left: if($num == 0, 0, percentage($num));
|
||||
}
|
||||
|
||||
|
|
@ -63,7 +63,7 @@
|
|||
// style grid.
|
||||
@mixin row-cols($count) {
|
||||
> * {
|
||||
flex: 0 0 100% / $count;
|
||||
max-width: 100% / $count;
|
||||
flex: 0 0 divide(100%, $count);
|
||||
max-width: divide(100%, $count);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// Only display content to screen readers
|
||||
//
|
||||
// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
|
||||
// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
|
||||
// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
|
||||
|
||||
@mixin sr-only() {
|
||||
position: absolute;
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
.embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {
|
||||
&::before {
|
||||
padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);
|
||||
padding-top: percentage(divide($embed-responsive-aspect-ratio-y, $embed-responsive-aspect-ratio-x));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
// Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)
|
||||
@each $size, $length in $spacers {
|
||||
@if $size != 0 {
|
||||
@if "#{$size}" != "0" {
|
||||
.m#{$infix}-n#{$size} { margin: -$length !important; }
|
||||
.mt#{$infix}-n#{$size},
|
||||
.my#{$infix}-n#{$size} {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
// SCSS RFS mixin
|
||||
//
|
||||
// Automated font-resizing
|
||||
// Automated responsive font sizes
|
||||
//
|
||||
// See https://github.com/twbs/rfs
|
||||
// Licensed under MIT (https://github.com/twbs/rfs/blob/v8.x/LICENSE)
|
||||
|
||||
// Configuration
|
||||
|
||||
|
|
@ -12,11 +12,19 @@
|
|||
$rfs-base-font-size: 1.25rem !default;
|
||||
$rfs-font-size-unit: rem !default;
|
||||
|
||||
@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {
|
||||
@error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
|
||||
}
|
||||
|
||||
// Breakpoint at where font-size starts decreasing if screen width is smaller
|
||||
$rfs-breakpoint: 1200px !default;
|
||||
$rfs-breakpoint-unit: px !default;
|
||||
|
||||
// Resize font-size based on screen height and width
|
||||
@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
|
||||
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
|
||||
}
|
||||
|
||||
// Resize font size based on screen height and width
|
||||
$rfs-two-dimensional: false !default;
|
||||
|
||||
// Factor of decrease
|
||||
|
|
@ -41,12 +49,54 @@ $enable-responsive-font-sizes: true !default;
|
|||
// Cache $rfs-base-font-size unit
|
||||
$rfs-base-font-size-unit: unit($rfs-base-font-size);
|
||||
|
||||
@function divide($dividend, $divisor, $precision: 10) {
|
||||
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
|
||||
$dividend: abs($dividend);
|
||||
$divisor: abs($divisor);
|
||||
@if $dividend == 0 {
|
||||
@return 0;
|
||||
}
|
||||
@if $divisor == 0 {
|
||||
@error "Cannot divide by 0";
|
||||
}
|
||||
$remainder: $dividend;
|
||||
$result: 0;
|
||||
$factor: 10;
|
||||
@while ($remainder > 0 and $precision >= 0) {
|
||||
$quotient: 0;
|
||||
@while ($remainder >= $divisor) {
|
||||
$remainder: $remainder - $divisor;
|
||||
$quotient: $quotient + 1;
|
||||
}
|
||||
$result: $result * 10 + $quotient;
|
||||
$factor: $factor * .1;
|
||||
$remainder: $remainder * 10;
|
||||
$precision: $precision - 1;
|
||||
@if ($precision < 0 and $remainder >= $divisor * 5) {
|
||||
$result: $result + 1;
|
||||
}
|
||||
}
|
||||
$result: $result * $factor * $sign;
|
||||
$dividend-unit: unit($dividend);
|
||||
$divisor-unit: unit($divisor);
|
||||
$unit-map: (
|
||||
"px": 1px,
|
||||
"rem": 1rem,
|
||||
"em": 1em,
|
||||
"%": 1%
|
||||
);
|
||||
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
|
||||
$result: $result * map-get($unit-map, $dividend-unit);
|
||||
}
|
||||
@return $result;
|
||||
}
|
||||
|
||||
// Remove px-unit from $rfs-base-font-size for calculations
|
||||
@if $rfs-base-font-size-unit == "px" {
|
||||
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);
|
||||
$rfs-base-font-size: divide($rfs-base-font-size, $rfs-base-font-size * 0 + 1);
|
||||
}
|
||||
@else if $rfs-base-font-size-unit == "rem" {
|
||||
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);
|
||||
$rfs-base-font-size: divide($rfs-base-font-size, divide($rfs-base-font-size * 0 + 1, $rfs-rem-value));
|
||||
}
|
||||
|
||||
// Cache $rfs-breakpoint unit to prevent multiple calls
|
||||
|
|
@ -54,13 +104,55 @@ $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
|
|||
|
||||
// Remove unit from $rfs-breakpoint for calculations
|
||||
@if $rfs-breakpoint-unit-cache == "px" {
|
||||
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);
|
||||
$rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
|
||||
}
|
||||
@else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
|
||||
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);
|
||||
$rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
|
||||
}
|
||||
|
||||
// Responsive font-size mixin
|
||||
// Internal mixin that adds disable classes to the selector if needed.
|
||||
@mixin _rfs-disable-class {
|
||||
@if $rfs-class == "disable" {
|
||||
// Adding an extra class increases specificity, which prevents the media query to override the font size
|
||||
&,
|
||||
.disable-responsive-font-size &,
|
||||
&.disable-responsive-font-size {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
// Internal mixin that adds enable classes to the selector if needed.
|
||||
@mixin _rfs-enable-class {
|
||||
@if $rfs-class == "enable" {
|
||||
.enable-responsive-font-size &,
|
||||
&.enable-responsive-font-size {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
// Internal mixin used to determine which media query needs to be used
|
||||
@mixin _rfs-media-query($mq-value) {
|
||||
@if $rfs-two-dimensional {
|
||||
@media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
@media (max-width: #{$mq-value}) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Responsive font size mixin
|
||||
@mixin rfs($fs, $important: false) {
|
||||
// Cache $fs unit
|
||||
$fs-unit: if(type-of($fs) == "number", unit($fs), false);
|
||||
|
|
@ -73,128 +165,60 @@ $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
|
|||
font-size: #{$fs}#{$rfs-suffix};
|
||||
}
|
||||
@else {
|
||||
// Variables for storing static and fluid rescaling
|
||||
$rfs-static: null;
|
||||
$rfs-fluid: null;
|
||||
|
||||
// Remove px-unit from $fs for calculations
|
||||
// Remove unit from $fs for calculations
|
||||
@if $fs-unit == "px" {
|
||||
$fs: $fs / ($fs * 0 + 1);
|
||||
$fs: divide($fs, $fs * 0 + 1);
|
||||
}
|
||||
@else if $fs-unit == "rem" {
|
||||
$fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);
|
||||
$fs: divide($fs, divide($fs * 0 + 1, $rfs-rem-value));
|
||||
}
|
||||
|
||||
// Set default font-size
|
||||
@if $rfs-font-size-unit == rem {
|
||||
$rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};
|
||||
}
|
||||
@else if $rfs-font-size-unit == px {
|
||||
$rfs-static: #{$fs}px#{$rfs-suffix};
|
||||
// Set default font size
|
||||
$rfs-static: if($rfs-font-size-unit == rem, #{divide($fs, $rfs-rem-value)}rem, #{$fs}px);
|
||||
|
||||
// Only add the media query if the font size is bigger than the minimum font size
|
||||
@if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {
|
||||
font-size: #{$rfs-static}#{$rfs-suffix};
|
||||
}
|
||||
@else {
|
||||
@error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
|
||||
}
|
||||
// Calculate the minimum font size for $fs
|
||||
$fs-min: $rfs-base-font-size + divide($fs - $rfs-base-font-size, $rfs-factor);
|
||||
|
||||
// Only add media query if font-size is bigger as the minimum font-size
|
||||
// If $rfs-factor == 1, no rescaling will take place
|
||||
@if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {
|
||||
$min-width: null;
|
||||
$variable-unit: null;
|
||||
|
||||
// Calculate minimum font-size for given font-size
|
||||
$fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;
|
||||
|
||||
// Calculate difference between given font-size and minimum font-size for given font-size
|
||||
// Calculate difference between $fs and the minimum font size
|
||||
$fs-diff: $fs - $fs-min;
|
||||
|
||||
// Base font-size formatting
|
||||
// No need to check if the unit is valid, because we did that before
|
||||
$min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);
|
||||
$min-width: if($rfs-font-size-unit == rem, #{divide($fs-min, $rfs-rem-value)}rem, #{$fs-min}px);
|
||||
|
||||
// If two-dimensional, use smallest of screen width and height
|
||||
// Use `vmin` if two-dimensional is enabled
|
||||
$variable-unit: if($rfs-two-dimensional, vmin, vw);
|
||||
|
||||
// Calculate the variable width between 0 and $rfs-breakpoint
|
||||
$variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};
|
||||
$variable-width: #{divide($fs-diff * 100, $rfs-breakpoint)}#{$variable-unit};
|
||||
|
||||
// Set the calculated font-size.
|
||||
// Set the calculated font-size
|
||||
$rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
|
||||
}
|
||||
|
||||
// Rendering
|
||||
@if $rfs-fluid == null {
|
||||
// Only render static font-size if no fluid font-size is available
|
||||
font-size: $rfs-static;
|
||||
}
|
||||
@else {
|
||||
$mq-value: null;
|
||||
// Breakpoint formatting
|
||||
$mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
|
||||
|
||||
// RFS breakpoint formatting
|
||||
@if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {
|
||||
$mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};
|
||||
}
|
||||
@else if $rfs-breakpoint-unit == px {
|
||||
$mq-value: #{$rfs-breakpoint}px;
|
||||
}
|
||||
@else {
|
||||
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
|
||||
@include _rfs-disable-class {
|
||||
font-size: #{$rfs-static}#{$rfs-suffix};
|
||||
}
|
||||
|
||||
@if $rfs-class == "disable" {
|
||||
// Adding an extra class increases specificity,
|
||||
// which prevents the media query to override the font size
|
||||
&,
|
||||
.disable-responsive-font-size &,
|
||||
&.disable-responsive-font-size {
|
||||
font-size: $rfs-static;
|
||||
@include _rfs-media-query($mq-value) {
|
||||
@include _rfs-enable-class {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
font-size: $rfs-static;
|
||||
}
|
||||
|
||||
@if $rfs-two-dimensional {
|
||||
@media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
|
||||
@if $rfs-class == "enable" {
|
||||
.enable-responsive-font-size &,
|
||||
&.enable-responsive-font-size {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
|
||||
@if $rfs-safari-iframe-resize-bug-fix {
|
||||
// stylelint-disable-next-line length-zero-no-unit
|
||||
min-width: 0vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
@else {
|
||||
@media (max-width: #{$mq-value}) {
|
||||
@if $rfs-class == "enable" {
|
||||
.enable-responsive-font-size &,
|
||||
&.enable-responsive-font-size {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
|
||||
@if $rfs-safari-iframe-resize-bug-fix {
|
||||
// stylelint-disable-next-line length-zero-no-unit
|
||||
min-width: 0vw;
|
||||
}
|
||||
}
|
||||
// Include safari iframe resize fix if needed
|
||||
min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The font-size & responsive-font-size mixin uses RFS to rescale font sizes
|
||||
// The font-size & responsive-font-size mixins use RFS to rescale the font size
|
||||
@mixin font-size($fs, $important: false) {
|
||||
@include rfs($fs, $important);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@
|
|||
}
|
||||
|
||||
// Highlight border color between thead, tbody and tfoot.
|
||||
> :not(:last-child) > :last-child > * {
|
||||
border-bottom-color: $table-group-separator-color;
|
||||
> :not(:first-child) {
|
||||
border-top: (2 * $table-border-width) solid $table-group-separator-color;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -91,6 +91,10 @@
|
|||
> :not(caption) > * > * {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
> :not(:first-child) {
|
||||
border-top-width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Zebra-striping
|
||||
|
|
@ -98,7 +102,7 @@
|
|||
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
|
||||
|
||||
.table-striped {
|
||||
> tbody > tr:nth-of-type(#{$table-striped-order}) {
|
||||
> tbody > tr:nth-of-type(#{$table-striped-order}) > * {
|
||||
--#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-striped-bg);
|
||||
color: var(--#{$variable-prefix}table-striped-color);
|
||||
}
|
||||
|
|
@ -118,7 +122,7 @@
|
|||
// Placed here since it has to come after the potential zebra striping
|
||||
|
||||
.table-hover {
|
||||
> tbody > tr:hover {
|
||||
> tbody > tr:hover > * {
|
||||
--#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-hover-bg);
|
||||
color: var(--#{$variable-prefix}table-hover-color);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -924,7 +924,7 @@ $form-check-inline-margin-end: 1rem !default;
|
|||
// scss-docs-end form-check-variables
|
||||
|
||||
// scss-docs-start form-switch-variables
|
||||
$form-switch-color: rgba(0, 0, 0, .25) !default;
|
||||
$form-switch-color: rgba($black, .25) !default;
|
||||
$form-switch-width: 2em !default;
|
||||
$form-switch-padding-start: $form-switch-width + .5em !default;
|
||||
$form-switch-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>") !default;
|
||||
|
|
@ -972,7 +972,7 @@ $form-select-feedback-icon-size: $input-height-inner-half $input-height-i
|
|||
|
||||
$form-select-border-width: $input-border-width !default;
|
||||
$form-select-border-color: $input-border-color !default;
|
||||
$form-select-border-radius: $border-radius !default;
|
||||
$form-select-border-radius: $input-border-radius !default;
|
||||
$form-select-box-shadow: $box-shadow-inset !default;
|
||||
|
||||
$form-select-focus-border-color: $input-focus-border-color !default;
|
||||
|
|
@ -982,10 +982,12 @@ $form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focu
|
|||
$form-select-padding-y-sm: $input-padding-y-sm !default;
|
||||
$form-select-padding-x-sm: $input-padding-x-sm !default;
|
||||
$form-select-font-size-sm: $input-font-size-sm !default;
|
||||
$form-select-border-radius-sm: $input-border-radius-sm !default;
|
||||
|
||||
$form-select-padding-y-lg: $input-padding-y-lg !default;
|
||||
$form-select-padding-x-lg: $input-padding-x-lg !default;
|
||||
$form-select-font-size-lg: $input-font-size-lg !default;
|
||||
$form-select-border-radius-lg: $input-border-radius-lg !default;
|
||||
|
||||
$form-select-transition: $input-transition !default;
|
||||
// scss-docs-end form-select-variables
|
||||
|
|
@ -1372,14 +1374,14 @@ $toast-font-size: .875rem !default;
|
|||
$toast-color: null !default;
|
||||
$toast-background-color: rgba($white, .85) !default;
|
||||
$toast-border-width: 1px !default;
|
||||
$toast-border-color: rgba(0, 0, 0, .1) !default;
|
||||
$toast-border-color: rgba($black, .1) !default;
|
||||
$toast-border-radius: $border-radius !default;
|
||||
$toast-box-shadow: $box-shadow !default;
|
||||
$toast-spacing: $container-padding-x !default;
|
||||
|
||||
$toast-header-color: $gray-600 !default;
|
||||
$toast-header-background-color: rgba($white, .85) !default;
|
||||
$toast-header-border-color: rgba(0, 0, 0, .05) !default;
|
||||
$toast-header-border-color: rgba($black, .05) !default;
|
||||
// scss-docs-end toast-variables
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Bootstrap Grid v5.1.1 (https://getbootstrap.com/)
|
||||
* Bootstrap Grid v5.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Bootstrap Reboot v5.1.1 (https://getbootstrap.com/)
|
||||
* Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Bootstrap Utilities v5.1.1 (https://getbootstrap.com/)
|
||||
* Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Bootstrap v5.1.1 (https://getbootstrap.com/)
|
||||
* Bootstrap v5.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@
|
|||
padding-bottom: $form-select-padding-y-sm;
|
||||
padding-left: $form-select-padding-x-sm;
|
||||
@include font-size($form-select-font-size-sm);
|
||||
@include border-radius($form-select-border-radius-sm);
|
||||
}
|
||||
|
||||
.form-select-lg {
|
||||
|
|
@ -67,4 +68,5 @@
|
|||
padding-bottom: $form-select-padding-y-lg;
|
||||
padding-left: $form-select-padding-x-lg;
|
||||
@include font-size($form-select-font-size-lg);
|
||||
@include border-radius($form-select-border-radius-lg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,10 @@
|
|||
--#{$variable-prefix}gutter-y: 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: calc(var(--#{$variable-prefix}gutter-y) * -1); // stylelint-disable-line function-disallowed-list
|
||||
margin-right: calc(var(--#{$variable-prefix}gutter-x) * -.5); // stylelint-disable-line function-disallowed-list
|
||||
margin-left: calc(var(--#{$variable-prefix}gutter-x) * -.5); // stylelint-disable-line function-disallowed-list
|
||||
// TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed
|
||||
margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list
|
||||
margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
|
||||
margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
|
||||
}
|
||||
|
||||
@mixin make-col-ready($gutter: $grid-gutter-width) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
// Hide content visually while keeping it accessible to assistive technologies
|
||||
//
|
||||
// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
|
||||
// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
|
||||
// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
|
||||
|
||||
@mixin visually-hidden() {
|
||||
position: absolute !important;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
//Add your own editor styles here or import additional files
|
||||
$bootstrap4: true; // <--- Do not delete this variable. It is used in theme/_blocks.scss and theme/_understrap.scss.
|
||||
|
||||
// Add your own editor styles here or import additional files
|
||||
|
||||
// Grab our child theme variables
|
||||
@import "theme/theme_variables";
|
||||
|
|
@ -15,9 +17,12 @@
|
|||
// Set up basic typography
|
||||
@import "assets/bootstrap4/type";
|
||||
|
||||
// Set up bootstrap utilities
|
||||
@import "assets/bootstrap4/utilities";
|
||||
|
||||
// Start bringing in colors and styles.
|
||||
@import "theme/colors";
|
||||
@import "theme/blocks-bootstrap4";
|
||||
@import "theme/blocks";
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
//Add your own editor styles here or import additional files
|
||||
// Add your own editor styles here or import additional files
|
||||
|
||||
// Grab our child theme variables
|
||||
@import "theme/theme_variables";
|
||||
|
|
@ -15,6 +15,9 @@
|
|||
// Set up basic typography
|
||||
@import "assets/bootstrap5/type";
|
||||
|
||||
// Set up bootstrap utilities
|
||||
@import "assets/bootstrap5/bootstrap-utilities";
|
||||
|
||||
// Start bringing in colors and styles.
|
||||
@import "theme/colors";
|
||||
@import "theme/blocks";
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
@import "theme/theme_variables"; // <-------- Add your variables into this file. Also add variables to overwrite Bootstrap or Understrap variables here
|
||||
@import "assets/bootstrap4/bootstrap"; // <-------- Loads Bootstrap4
|
||||
@import "theme/understrap-bootstrap4"; // <-------- Loads the Understrap defaults. Just a few classes to incorporate BS in WP
|
||||
@import "theme/colors"; // <-------- This creates the necessary bootstrap color classes.
|
||||
@import "theme/blocks-bootstrap4"; // <-------- This adds Bootstrap styles to blocks.
|
||||
@import "theme/contact-form7"; // <-------- Contact Form 7 - Bootstrap 4 support
|
||||
@import "theme/woocommerce"; // <-------- Loads WooCommerce style fixes. Comment out if you aren't using WooCommerce
|
||||
$bootstrap4: true; // <--- Do not delete this variable. It is used in theme/_blocks.scss and theme/_understrap.scss.
|
||||
|
||||
// Optional files - If you dont use the corresponding scripts/fonts comment em out
|
||||
@import "assets/fontawesome/font-awesome"; // <-------- Font Awesome Icon font
|
||||
@import "theme/theme_variables"; // <--- Add your variables into this file. Also add variables to overwrite Bootstrap or Understrap variables here
|
||||
@import "assets/bootstrap4/bootstrap"; // <--- Loads Bootstrap
|
||||
@import "theme/understrap"; // <--- Loads the Understrap defaults. Just a few classes to incorporate BS in WP
|
||||
@import "theme/colors"; // <--- This creates the necessary bootstrap color classes.
|
||||
@import "theme/blocks"; // <--- This adds Bootstrap styles to blocks.
|
||||
|
||||
// Optional files - If you dont use the corresponding plugins/scripts/fonts comment em out
|
||||
@import "theme/contact-form7"; // <--- Contact Form 7 - Bootstrap support
|
||||
@import "theme/woocommerce"; // <--- Loads WooCommerce style fixes. Comment out if you aren't using WooCommerce
|
||||
@import "assets/fontawesome/font-awesome"; // <--- Font Awesome Icon font
|
||||
|
||||
// Any additional imported files //
|
||||
@import "theme/theme"; // <-------- That's where you can add your own design. Thats your part!
|
||||
|
||||
@import "theme/theme"; // <--- That's where you can add your own design. Thats your part!
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
@import "theme/theme_variables"; // <-------- Add your variables into this file. Also add variables to overwrite Bootstrap or Understrap variables here
|
||||
@import "assets/bootstrap5/bootstrap"; // <-------- Loads Bootstrap4
|
||||
@import "theme/understrap"; // <-------- Loads the Understrap defaults. Just a few classes to incorporate BS in WP
|
||||
@import "theme/colors"; // <-------- This creates the necessary bootstrap color classes.
|
||||
@import "theme/blocks"; // <-------- This adds Bootstrap styles to blocks.
|
||||
@import "theme/contact-form7"; // <-------- Contact Form 7 - Bootstrap 4 support
|
||||
@import "theme/woocommerce"; // <-------- Loads WooCommerce style fixes. Comment out if you aren't using WooCommerce
|
||||
@import "theme/theme_variables"; // <--- Add your variables into this file. Also add variables to overwrite Bootstrap or Understrap variables here
|
||||
@import "assets/bootstrap5/bootstrap"; // <--- Loads Bootstrap
|
||||
@import "theme/understrap"; // <--- Loads the Understrap defaults. Just a few classes to incorporate BS in WP
|
||||
@import "theme/colors"; // <--- This creates the necessary bootstrap color classes.
|
||||
@import "theme/blocks"; // <--- This adds Bootstrap styles to blocks.
|
||||
|
||||
// Optional files - If you dont use the corresponding scripts/fonts comment em out
|
||||
@import "assets/fontawesome/font-awesome"; // <-------- Font Awesome Icon font
|
||||
// Optional files - If you dont use the corresponding plugins/scripts/fonts comment em out
|
||||
@import "theme/contact-form7"; // <--- Contact Form 7 - Bootstrap support
|
||||
@import "theme/woocommerce"; // <--- Loads WooCommerce style fixes. Comment out if you aren't using WooCommerce
|
||||
@import "assets/fontawesome/font-awesome"; // <--- Font Awesome Icon font
|
||||
|
||||
// Any additional imported files //
|
||||
@import "theme/theme"; // <-------- That's where you can add your own design. Thats your part!
|
||||
@import "theme/theme"; // <--- That's where you can add your own design. Thats your part!
|
||||
|
||||
|
|
|
|||
|
|
@ -1,89 +0,0 @@
|
|||
// Tables
|
||||
.wp-block-table table {
|
||||
@extend .table;
|
||||
@extend .table-bordered;
|
||||
}
|
||||
|
||||
// Block Quotes
|
||||
.wp-block-quote {
|
||||
@extend .blockquote;
|
||||
cite {
|
||||
@extend .blockquote-footer;
|
||||
}
|
||||
}
|
||||
|
||||
// Image captions
|
||||
figure.wp-block-image {
|
||||
@extend .figure;
|
||||
display: block;
|
||||
img {
|
||||
@extend .figure-img;
|
||||
}
|
||||
figcaption {
|
||||
@extend .figure-caption;
|
||||
}
|
||||
}
|
||||
|
||||
// Alternate/classic editor image captions.
|
||||
.wp-block-image > figure{
|
||||
@extend .figure;
|
||||
display: block;
|
||||
img {
|
||||
@extend .figure-img;
|
||||
}
|
||||
figcaption {
|
||||
@extend .figure-caption;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Wide alignments and covers.
|
||||
body.understrap-no-sidebar{
|
||||
.alignwide,
|
||||
.alignfull,
|
||||
.wp-block-cover.alignwide,
|
||||
.wp-block-cover.alignfull {
|
||||
margin: 0px calc(50% - 50vw);
|
||||
max-width: 100vw;
|
||||
width: 100vw;
|
||||
|
||||
.wp-block-cover__inner-container {
|
||||
@include make-container();
|
||||
@include make-container-max-widths();
|
||||
}
|
||||
}
|
||||
|
||||
.alignwide,
|
||||
.wp-block-cover.alignwide{
|
||||
margin: 0px calc(50% - 45vw);
|
||||
max-width: 90vw;
|
||||
width: 100vw;
|
||||
|
||||
.wp-block-cover__inner-container {
|
||||
@include make-container();
|
||||
@include make-container-max-widths();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 920px) {
|
||||
.alignwide,
|
||||
.wp-block-cover.alignwide {
|
||||
margin: 0px calc(50% - 48vw);
|
||||
max-width: 96vw;
|
||||
width: 100vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Buttons
|
||||
.wp-block-buttons {
|
||||
.wp-block-button {
|
||||
.wp-block-button__link {
|
||||
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);
|
||||
}
|
||||
&:not(.is-style-outline) .wp-block-button__link {
|
||||
border: $btn-border-width solid transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// Tables
|
||||
// Tables
|
||||
.wp-block-table table {
|
||||
@extend .table;
|
||||
@extend .table-bordered;
|
||||
|
|
@ -25,7 +25,7 @@ figure.wp-block-image {
|
|||
}
|
||||
|
||||
// Alternate/classic editor image captions.
|
||||
.wp-block-image > figure{
|
||||
.wp-block-image > figure {
|
||||
@extend .figure;
|
||||
display: block;
|
||||
img {
|
||||
|
|
@ -38,12 +38,12 @@ figure.wp-block-image {
|
|||
|
||||
|
||||
// Wide alignments and covers.
|
||||
body.understrap-no-sidebar{
|
||||
body.understrap-no-sidebar {
|
||||
.alignwide,
|
||||
.alignfull,
|
||||
.wp-block-cover.alignwide,
|
||||
.wp-block-cover.alignfull {
|
||||
margin: 0px calc(50% - 50vw);
|
||||
margin: 0 calc(50% - 50vw);
|
||||
max-width: 100vw;
|
||||
width: 100vw;
|
||||
|
||||
|
|
@ -58,26 +58,16 @@ body.understrap-no-sidebar{
|
|||
}
|
||||
|
||||
.alignwide,
|
||||
.wp-block-cover.alignwide{
|
||||
margin: 0px calc(50% - 45vw);
|
||||
.wp-block-cover.alignwide {
|
||||
margin: 0 calc(50% - 45vw);
|
||||
max-width: 90vw;
|
||||
width: 100vw;
|
||||
|
||||
.wp-block-cover__inner-container {
|
||||
@include make-container();
|
||||
@each $breakpoint, $container-max-width in $container-max-widths {
|
||||
@include media-breakpoint-up($breakpoint, $grid-breakpoints) {
|
||||
max-width: $container-max-width;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 920px) {
|
||||
.alignwide,
|
||||
.wp-block-cover.alignwide {
|
||||
margin: 0px calc(50% - 48vw);
|
||||
margin: 0 calc(50% - 48vw);
|
||||
max-width: 96vw;
|
||||
width: 100vw;
|
||||
}
|
||||
|
|
@ -88,7 +78,11 @@ body.understrap-no-sidebar{
|
|||
.wp-block-buttons {
|
||||
.wp-block-button {
|
||||
.wp-block-button__link {
|
||||
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);
|
||||
@if variable-exists('bootstrap4') {
|
||||
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);
|
||||
} @else {
|
||||
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);
|
||||
}
|
||||
}
|
||||
&:not(.is-style-outline) .wp-block-button__link {
|
||||
border: $btn-border-width solid transparent;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,8 @@
|
|||
@each $name, $color in $colors {
|
||||
@use "sass:map";
|
||||
|
||||
.has-#{$name}-color,
|
||||
.has-#{$name}-color:visited {
|
||||
color: $color;
|
||||
}
|
||||
.has-#{$name}-background-color {
|
||||
background-color: $color;
|
||||
border-color: $color;
|
||||
}
|
||||
}
|
||||
@each $name, $color in $theme-colors {
|
||||
$merged-colors: map.merge($colors, $theme-colors);
|
||||
|
||||
@each $name, $color in $merged-colors {
|
||||
|
||||
.has-#{$name}-color,
|
||||
.has-#{$name}-color:visited {
|
||||
|
|
@ -25,4 +18,4 @@
|
|||
&.wp-block-button__link {
|
||||
color: $gray-600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,179 +0,0 @@
|
|||
body {
|
||||
overflow-x: hidden; // Fix for Windows Chrome horizontal scrollbar.
|
||||
}
|
||||
|
||||
|
||||
// Some basic padding for all wrappers
|
||||
.wrapper {
|
||||
padding: $grid-gutter-width 0;
|
||||
}
|
||||
|
||||
// Reset hero wrapper padding to 0
|
||||
#wrapper-hero {
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
// Adding basic WordPress classes to pass the WordPress.org tests
|
||||
.sticky,
|
||||
.gallery-caption,
|
||||
.bypostauthor {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
// Separate sticky wrapper from main content
|
||||
.wrapper#wrapper-sticky {
|
||||
border-bottom: 1px solid $gray-300;
|
||||
}
|
||||
|
||||
// Adding some contrast background color to footer full widget
|
||||
#wrapper-footer-full,
|
||||
#wrapper-static-hero {
|
||||
background-color: $gray-200;
|
||||
}
|
||||
|
||||
// Necessary WP classes
|
||||
.wp-caption {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.wp-caption-text {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.screen-reader-text {
|
||||
@include sr-only();
|
||||
}
|
||||
|
||||
.alignleft {
|
||||
display: inline;
|
||||
float: left;
|
||||
margin-right: $spacer;
|
||||
}
|
||||
|
||||
.alignright {
|
||||
display: inline;
|
||||
float: right;
|
||||
margin-left: $spacer;
|
||||
}
|
||||
|
||||
.aligncenter {
|
||||
@extend .mx-auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.widget_categories,
|
||||
.widget_archive {
|
||||
select {
|
||||
@extend .form-control;
|
||||
}
|
||||
}
|
||||
|
||||
// Post design
|
||||
.entry-footer span {
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
img.wp-post-image,
|
||||
article img,
|
||||
figure,
|
||||
img,
|
||||
#secondary img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
// Skip to content link
|
||||
a.skip-link {
|
||||
position: fixed;
|
||||
z-index: 1000;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
// Reset Jumbotron default margin
|
||||
.jumbotron {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
// Dropdown translation
|
||||
.navbar-dark .navbar-nav .dropdown-menu .nav-link {
|
||||
display: block;
|
||||
width: 100%; // For `<button>`s
|
||||
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
|
||||
clear: both;
|
||||
font-weight: $font-weight-normal;
|
||||
color: $dropdown-link-color !important;
|
||||
text-align: inherit; // For `<button>`s
|
||||
white-space: nowrap; // prevent links from randomly breaking onto new lines
|
||||
background: none; // For `<button>`s
|
||||
border: 0; // For `<button>`s
|
||||
|
||||
@include hover-focus {
|
||||
color: $dropdown-link-hover-color !important;
|
||||
text-decoration: none;
|
||||
background-color: $dropdown-link-hover-bg;
|
||||
}
|
||||
|
||||
&.active,
|
||||
&:active {
|
||||
color: $dropdown-link-active-color !important;
|
||||
text-decoration: none;
|
||||
background-color: $dropdown-link-active-bg;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
color: $dropdown-link-disabled-color !important;
|
||||
background-color: transparent;
|
||||
|
||||
// Remove CSS gradients if they're enabled
|
||||
@if $enable-gradients {
|
||||
background-image: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-light .navbar-brand a {
|
||||
color: $navbar-light-active-color;
|
||||
|
||||
@include hover-focus {
|
||||
color: $navbar-light-active-color;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-dark .navbar-brand a {
|
||||
color: $navbar-dark-active-color;
|
||||
|
||||
@include hover-focus {
|
||||
color: $navbar-dark-active-color;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar h1 {
|
||||
font-weight: $font-weight-normal;
|
||||
}
|
||||
|
||||
// Galleries
|
||||
.gallery {
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
.gallery-item {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
vertical-align: top;
|
||||
width: 100%;
|
||||
|
||||
@for $i from 2 through 9 {
|
||||
.gallery-columns-#{$i} & {
|
||||
max-width: floor( percentage( 1 / $i ) * 100 ) / 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
.gallery-caption {
|
||||
display: block;
|
||||
}
|
||||
|
||||
// Accessibility requirement for content links.
|
||||
.entry-content p a:not(.btn) {
|
||||
text-decoration: underline;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue