@airfleet/generator-init 0.37.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/generators/plugin/index.js +115 -26
  2. package/generators/plugin/templates/.browserslistrc +2 -0
  3. package/generators/plugin/templates/.dprint.json +3 -0
  4. package/generators/plugin/templates/.github/workflows/release-plugin-preview.yml +197 -0
  5. package/generators/plugin/templates/.github/workflows/release-plugin.yml +24 -18
  6. package/generators/plugin/templates/.github/workflows/test-wordpress.yml +43 -10
  7. package/generators/plugin/templates/.husky/pre-commit +1 -4
  8. package/generators/plugin/templates/.lintstagedrc.json +12 -0
  9. package/generators/plugin/templates/.node-version +1 -0
  10. package/generators/plugin/templates/.oxlintrc.json +3 -0
  11. package/generators/plugin/templates/.parcelrc +1 -2
  12. package/generators/plugin/templates/.stylelintrc.json +4 -0
  13. package/generators/plugin/templates/.vscode/airfleet.code-snippets.ejs +5 -1
  14. package/generators/plugin/templates/.vscode/settings.json +18 -8
  15. package/generators/plugin/templates/README.md.ejs +0 -11
  16. package/generators/plugin/templates/composer-scoped-empty.json.ejs +6 -0
  17. package/generators/plugin/templates/composer-scoped-empty.lock.ejs +18 -0
  18. package/generators/{project-plugin/templates/composer-scoped.json.ejs → plugin/templates/composer-scoped-framework.json.ejs} +1 -1
  19. package/generators/{project-plugin/templates/composer-scoped.lock.ejs → plugin/templates/composer-scoped-framework.lock.ejs} +19 -20
  20. package/generators/{project-plugin/templates/composer.json.ejs → plugin/templates/composer-with-scoper.json.ejs} +5 -4
  21. package/generators/plugin/templates/composer-without-scoper.json.ejs +40 -0
  22. package/generators/plugin/templates/gitignore +1 -0
  23. package/generators/plugin/templates/globals.d.ts +1 -0
  24. package/generators/plugin/templates/inc/AjaxVariables.php.ejs +1 -1
  25. package/generators/plugin/templates/inc/AjaxVariablesAdmin.php.ejs +1 -1
  26. package/generators/plugin/templates/inc/Options/GeneralOptions.php.ejs +2 -2
  27. package/generators/plugin/templates/inc/Pages.php.ejs +3 -3
  28. package/generators/plugin/templates/inc/RegisterViews.php.ejs +1 -1
  29. package/generators/plugin/templates/inc/Setup.php.ejs +6 -6
  30. package/generators/plugin/templates/package.json.ejs +9 -53
  31. package/generators/plugin/templates/plugin-name-api.php +1 -0
  32. package/generators/{project-plugin/templates/plugin-name.php.ejs → plugin/templates/plugin-name-scoped-framework.php.ejs} +11 -1
  33. package/generators/plugin/templates/plugin-name-unscoped-framework.php.ejs +82 -0
  34. package/generators/plugin/templates/scoper.custom.php.ejs +1 -0
  35. package/generators/project/index.js +14 -21
  36. package/generators/project/info.js +2 -2
  37. package/generators/project/prompts.js +10 -16
  38. package/generators/project/templates/.deployignore +8 -0
  39. package/generators/project/templates/.github/workflows/test-wordpress-root-lightyear.yml +46 -9
  40. package/generators/project/templates/.husky/pre-commit +1 -4
  41. package/generators/project/templates/.vscode/airfleet.code-snippets +2 -2
  42. package/generators/project/templates/.vscode/settings.json +18 -8
  43. package/generators/project/templates/README.md.ejs +0 -9
  44. package/generators/project-plugin/index.js +85 -14
  45. package/generators/project-plugin/templates/.browserslistrc +2 -0
  46. package/generators/project-plugin/templates/.deployignore +38 -8
  47. package/generators/project-plugin/templates/.dprint.json +3 -0
  48. package/generators/project-plugin/templates/.github/workflows/test-wordpress.yml +43 -12
  49. package/generators/project-plugin/templates/.husky/pre-commit +1 -4
  50. package/generators/project-plugin/templates/.lintstagedrc.json +12 -0
  51. package/generators/project-plugin/templates/.node-version +1 -0
  52. package/generators/project-plugin/templates/.oxlintrc.json +3 -0
  53. package/generators/project-plugin/templates/.parcelrc +1 -2
  54. package/generators/project-plugin/templates/.stylelintrc.json +4 -0
  55. package/generators/project-plugin/templates/.vscode/airfleet.code-snippets.ejs +5 -1
  56. package/generators/project-plugin/templates/.vscode/settings.json +18 -8
  57. package/generators/project-plugin/templates/README.md.ejs +0 -7
  58. package/generators/project-plugin/templates/assets/admin/styles/admin.entry.scss +2 -2
  59. package/generators/project-plugin/templates/assets/editor/styles/editor.entry.scss +8 -7
  60. package/generators/project-plugin/templates/assets/frontend/styles/_main.scss +7 -3
  61. package/generators/project-plugin/templates/assets/frontend/styles/_placeholders.scss +9 -3
  62. package/generators/project-plugin/templates/assets/frontend/styles/_root.scss +2 -2
  63. package/generators/project-plugin/templates/assets/frontend/styles/critical.entry.scss +1 -1
  64. package/generators/project-plugin/templates/assets/frontend/styles/index.entry.scss +7 -5
  65. package/generators/project-plugin/templates/assets/frontend/styles/main/_body.scss +6 -4
  66. package/generators/project-plugin/templates/assets/frontend/styles/main/_reset.scss +98 -96
  67. package/generators/project-plugin/templates/assets/frontend/styles/placeholders/_button.scss +42 -40
  68. package/generators/project-plugin/templates/assets/frontend/styles/placeholders/_container.scss +12 -10
  69. package/generators/project-plugin/templates/assets/frontend/styles/placeholders/_sections.scss +6 -4
  70. package/generators/project-plugin/templates/assets/frontend/styles/root/_fonts.scss +2 -2
  71. package/generators/project-plugin/templates/assets/shared/styles/_figma-variables.scss +2 -5
  72. package/generators/project-plugin/templates/assets/shared/styles/_lib.scss +2 -2
  73. package/generators/project-plugin/templates/assets/shared/styles/_root.scss +2 -2
  74. package/generators/project-plugin/templates/assets/shared/styles/lib/_mixins.scss +6 -6
  75. package/generators/project-plugin/templates/assets/shared/styles/lib/mixins/_breakpoints.scss +1 -0
  76. package/generators/project-plugin/templates/composer-scoped-empty.json.ejs +6 -0
  77. package/generators/project-plugin/templates/composer-scoped-empty.lock.ejs +18 -0
  78. package/generators/{plugin/templates/composer-scoped.json.ejs → project-plugin/templates/composer-scoped-framework.json.ejs} +1 -1
  79. package/generators/{plugin/templates/composer-scoped.lock.ejs → project-plugin/templates/composer-scoped-framework.lock.ejs} +19 -20
  80. package/generators/{plugin/templates/composer.json.ejs → project-plugin/templates/composer-with-scoper.json.ejs} +5 -4
  81. package/generators/project-plugin/templates/composer-without-scoper.json.ejs +40 -0
  82. package/generators/project-plugin/templates/gitignore +1 -0
  83. package/generators/project-plugin/templates/globals.d.ts +1 -0
  84. package/generators/project-plugin/templates/inc/Features/Menus.php.ejs +1 -1
  85. package/generators/project-plugin/templates/inc/Setup/AjaxVariables.php.ejs +1 -1
  86. package/generators/project-plugin/templates/inc/Setup/AjaxVariablesAdmin.php.ejs +1 -1
  87. package/generators/project-plugin/templates/inc/Setup/Breakpoints.php.ejs +1 -1
  88. package/generators/project-plugin/templates/inc/Setup/Colors.php.ejs +1 -1
  89. package/generators/project-plugin/templates/inc/Setup/RegisterViews.php.ejs +1 -1
  90. package/generators/project-plugin/templates/inc/Setup.php.ejs +3 -3
  91. package/generators/project-plugin/templates/package.json.ejs +9 -58
  92. package/generators/{plugin/templates/plugin-name.php.ejs → project-plugin/templates/plugin-name-scoped-framework.php.ejs} +6 -1
  93. package/generators/project-plugin/templates/plugin-name-unscoped-framework.php.ejs +79 -0
  94. package/generators/project-plugin/templates/scoper.custom.php.ejs +1 -0
  95. package/generators/snippets/templates/airfleet.code-snippets.ejs +2 -2
  96. package/package.json +1 -1
  97. package/generators/plugin/templates/.prettierignore +0 -15
@@ -2,7 +2,7 @@ name: 🧪 Test
2
2
 
3
3
  on:
4
4
  push:
5
- branches: ["staging", "development"]
5
+ branches: ["main", "staging", "development"]
6
6
  pull_request:
7
7
  branches: ["main", "staging", "development"]
8
8
  workflow_dispatch:
@@ -13,20 +13,16 @@ jobs:
13
13
 
14
14
  steps:
15
15
  - name: 🚚 Get latest code
16
- uses: actions/checkout@v3
16
+ uses: actions/checkout@v6
17
17
 
18
18
  - name: ⚙️ Setup PHP
19
19
  uses: shivammathur/setup-php@v2
20
20
  with:
21
21
  php-version: "8.2"
22
22
  ini-values: short_open_tag=1
23
- env:
24
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25
23
 
26
- - name: ⚙️ Setup Node
27
- uses: actions/setup-node@v3
28
- with:
29
- node-version: 16
24
+ - name: ⚙️ Install bun
25
+ uses: oven-sh/setup-bun@v2
30
26
 
31
27
  - name: 🔨 Increase composer timeout
32
28
  run: composer --global config process-timeout 1500
@@ -34,11 +30,46 @@ jobs:
34
30
  - name: 🔨 Composer install
35
31
  run: composer install --prefer-dist --no-ansi --no-interaction --no-progress --optimize-autoloader
36
32
 
37
- - name: 🔨 npm install
38
- run: npm ci
33
+ - name: 🔨 Bun install
34
+ run: bun ci
35
+
36
+ - name: 🔬 Lint
37
+ run: bun run --if-present lint
39
38
 
40
39
  - name: 🔬 Test
41
- run: npm test
40
+ run: bun run --if-present test
42
41
 
43
42
  - name: 📦 Build
44
- run: npm run build --if-present
43
+ run: bun run --if-present build
44
+
45
+ test-php:
46
+ runs-on: ubuntu-latest
47
+
48
+ strategy:
49
+ matrix:
50
+ php-versions: ["8.2", "8.3", "8.4", "8.5"]
51
+
52
+ steps:
53
+ - name: 🚚 Get latest code
54
+ uses: actions/checkout@v6
55
+
56
+ - name: ⚙️ Setup PHP
57
+ uses: shivammathur/setup-php@v2
58
+ with:
59
+ php-version: "${{ matrix.php-versions }}"
60
+ ini-values: short_open_tag=1
61
+
62
+ - name: ⚙️ Install bun
63
+ uses: oven-sh/setup-bun@v2
64
+
65
+ - name: 🔨 Increase composer timeout
66
+ run: composer --global config process-timeout 1500
67
+
68
+ - name: 🔨 Composer install
69
+ run: composer install --prefer-dist --no-ansi --no-interaction --no-progress --optimize-autoloader
70
+
71
+ - name: 🔨 Bun install
72
+ run: bun ci
73
+
74
+ - name: 🔬 Lint
75
+ run: bun run lint --php
@@ -1,4 +1 @@
1
- #!/bin/sh
2
- . "$(dirname "$0")/_/husky.sh"
3
-
4
- npx lint-staged
1
+ bunx lint-staged
@@ -0,0 +1,12 @@
1
+ {
2
+ "*.{js,mjs,cjs,jsx,ts,mts,cts,tsx}": ["oxlint --fix", "dprint fmt"],
3
+ "*.{json,jsonc,md,yaml,yml}": "dprint fmt",
4
+ "*.{css,scss}": [
5
+ "stylelint --cache --ignore-path .gitignore --allow-empty-input --fix",
6
+ "dprint fmt"
7
+ ],
8
+ "*.php": [
9
+ "composer exec phpcbf",
10
+ "composer exec \"parallel-lint . --show-deprecated --exclude .git --exclude .parcel-cache --exclude dist --exclude node_modules --exclude wp-content --exclude vendor --exclude vendor-scoped\""
11
+ ]
12
+ }
@@ -0,0 +1 @@
1
+ <%- answers.pluginNodeVersion %>
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": ["./node_modules/@airfleet/wordpress-dev/config/.oxlintrc.json"]
3
+ }
@@ -1,4 +1,3 @@
1
1
  {
2
- "extends": "@parcel/config-default",
3
- "reporters": ["...", "parcel-reporter-bundle-manifest"]
2
+ "extends": "./node_modules/@airfleet/wordpress-dev/config/.parcelrc"
4
3
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": ["@airfleet/stylelint-config-wordpress"],
3
+ "ignoreFiles": ["**/_figma-variables.scss"]
4
+ }
@@ -7,7 +7,11 @@
7
7
  "",
8
8
  "namespace Airfleet\\Plugins\\<%= nameNoAirfleet.pascal %>\\\\${TM_DIRECTORY/^.+[\\/\\\\]+(.*)$/$1/};",
9
9
  "",
10
+ <%_ if (answers.addScoper) { _%>
10
11
  "use Airfleet\\Plugins\\<%= nameNoAirfleet.pascal %>\\Vendor\\Airfleet\\Framework\\Features\\BasePluginFeature;",
12
+ <% } else { %>,
13
+ "use Airfleet\\Framework\\Features\\BasePluginFeature;",
14
+ <% } _%>
11
15
  "",
12
16
  "class $TM_FILENAME_BASE extends BasePluginFeature {",
13
17
  " public function initialize(): void {",
@@ -181,4 +185,4 @@
181
185
  ],
182
186
  "description": "Bootstrap a Blade template for a partial"
183
187
  }
184
- }
188
+ }
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "editor.codeActionsOnSave": {
3
3
  "source.fixAll": "explicit",
4
- "source.fixAll.eslint": "explicit"
4
+ "source.fixAll.oxc": "explicit"
5
5
  },
6
+ "editor.defaultFormatter": "dprint.dprint",
6
7
  "editor.formatOnSave": true,
7
8
  "stylelint.validate": ["css", "scss", "postcss"],
8
9
  "phpSniffer.autoDetect": true,
@@ -10,24 +11,33 @@
10
11
  "editor.defaultFormatter": "wongjn.php-sniffer"
11
12
  },
12
13
  "[javascript]": {
13
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
14
+ "editor.defaultFormatter": "dprint.dprint"
14
15
  },
15
16
  "[javascriptreact]": {
16
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
17
+ "editor.defaultFormatter": "dprint.dprint"
17
18
  },
18
19
  "[typescript]": {
19
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
20
+ "editor.defaultFormatter": "dprint.dprint"
20
21
  },
21
22
  "[typescriptreact]": {
22
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
23
+ "editor.defaultFormatter": "dprint.dprint"
23
24
  },
24
25
  "[postcss]": {
25
- "editor.defaultFormatter": "esbenp.prettier-vscode"
26
+ "editor.defaultFormatter": "dprint.dprint"
26
27
  },
27
28
  "[scss]": {
28
- "editor.defaultFormatter": "esbenp.prettier-vscode"
29
+ "editor.defaultFormatter": "dprint.dprint"
29
30
  },
30
31
  "[css]": {
31
- "editor.defaultFormatter": "esbenp.prettier-vscode"
32
+ "editor.defaultFormatter": "dprint.dprint"
33
+ },
34
+ "[json]": {
35
+ "editor.defaultFormatter": "dprint.dprint"
36
+ },
37
+ "[yaml]": {
38
+ "editor.defaultFormatter": "dprint.dprint"
39
+ },
40
+ "[markdown]": {
41
+ "editor.defaultFormatter": "dprint.dprint"
32
42
  }
33
43
  }
@@ -4,13 +4,6 @@
4
4
 
5
5
  <%= answers.pluginDescription %>
6
6
 
7
- ## Getting Started
8
-
9
- ```bash
10
- composer install
11
- npm install
12
- ```
13
-
14
7
  ## License
15
8
 
16
9
  © [Airfleet](https://www.airfleet.co/)
@@ -1,2 +1,2 @@
1
- @import '../../shared/styles/root';
2
- @import '../../shared/styles/shared';
1
+ @use "../../shared/styles/root";
2
+ @use "../../shared/styles/shared";
@@ -1,6 +1,8 @@
1
- @import '../../shared/styles/lib';
2
- @import '../../frontend/styles/root';
3
- @import '../../frontend/styles/placeholders';
1
+ @use "../../shared/styles/lib";
2
+ @use "../../frontend/styles/root";
3
+ @use "../../frontend/styles/placeholders";
4
+ @use "../../frontend/styles/main";
5
+ @include placeholders.placeholders;
4
6
 
5
7
  @mixin fix-editor-conflicts {
6
8
  p {
@@ -12,12 +14,11 @@
12
14
  }
13
15
 
14
16
  :where(.acf-block-preview) {
15
- /* stylelint-disable-next-line no-invalid-position-at-import-rule */
16
- @import '../../frontend/styles/main';
17
+ @include main.main;
17
18
 
18
19
  // ! Theme body
19
- @include theme-body-styles();
20
+ @include lib.theme-body-styles;
20
21
 
21
22
  // ! Editor overrides
22
- @include fix-editor-conflicts();
23
+ @include fix-editor-conflicts;
23
24
  }
@@ -1,3 +1,7 @@
1
- // ! Import main styles
2
- @import 'main/reset';
3
- @import 'main/body';
1
+ @use "main/reset" as *;
2
+ @use "main/body" as *;
3
+
4
+ @mixin main() {
5
+ @include reset;
6
+ @include body;
7
+ }
@@ -1,3 +1,9 @@
1
- @import 'placeholders/sections';
2
- @import 'placeholders/button';
3
- @import 'placeholders/container';
1
+ @use "placeholders/sections" as *;
2
+ @use "placeholders/button" as *;
3
+ @use "placeholders/container" as *;
4
+
5
+ @mixin placeholders() {
6
+ @include section;
7
+ @include button;
8
+ @include container;
9
+ }
@@ -1,4 +1,4 @@
1
1
  // ! Imports that should be at the root/top of the styles
2
2
  // ! These cannot be scoped under other selectors
3
- @import 'root/fonts';
4
- @import '../../shared/styles/root';
3
+ @use "root/fonts";
4
+ @use "../../shared/styles/root";
@@ -1 +1 @@
1
- @import '../../shared/styles/lib';
1
+ @use "../../shared/styles/lib";
@@ -1,6 +1,8 @@
1
1
  // ! For variables and mixins, check the shared lib folder
2
- @import '../../shared/styles/lib';
3
- @import 'root';
4
- @import '../../shared/styles/shared';
5
- @import 'main';
6
- @import 'placeholders';
2
+ @use "../../shared/styles/lib";
3
+ @use "root";
4
+ @use "../../shared/styles/shared";
5
+ @use "main";
6
+ @use "placeholders";
7
+ @include main.main;
8
+ @include placeholders.placeholders;
@@ -1,6 +1,8 @@
1
- @import '../../../shared/styles/lib';
1
+ @use "../../../shared/styles/lib";
2
2
 
3
- body {
4
- // ! Update the styles inside the mixin instead of adding them here! This will ensure editor previews look consistent.
5
- @include theme-body-styles();
3
+ @mixin body() {
4
+ body {
5
+ // ! Update the styles inside the mixin instead of adding them here! This will ensure editor previews look consistent.
6
+ @include lib.theme-body-styles;
7
+ }
6
8
  }
@@ -1,121 +1,123 @@
1
1
  // ! This file is for global resets that are independent of project
2
- @import '../../../shared/styles/lib';
2
+ @use "../../../shared/styles/lib";
3
3
 
4
- * {
5
- margin: 0;
6
- }
4
+ @mixin reset() {
5
+ * {
6
+ margin: 0;
7
+ }
7
8
 
8
- *,
9
- *::before,
10
- *::after {
11
- box-sizing: border-box;
12
- }
9
+ *,
10
+ *::before,
11
+ *::after {
12
+ box-sizing: border-box;
13
+ }
13
14
 
14
- body {
15
- /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
16
- text-size-adjust: 100%;
17
- -webkit-tap-highlight-color: transparent;
18
- -webkit-font-smoothing: antialiased;
19
- min-height: 100vh;
20
- line-height: 1.4;
21
- }
15
+ body {
16
+ /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
17
+ text-size-adjust: 100%;
18
+ -webkit-tap-highlight-color: transparent;
19
+ -webkit-font-smoothing: antialiased;
20
+ min-height: 100vh;
21
+ line-height: 1.4;
22
+ }
22
23
 
23
- ul[role='list'],
24
- ol[role='list'] {
25
- list-style: none;
26
- }
24
+ ul[role="list"],
25
+ ol[role="list"] {
26
+ list-style: none;
27
+ }
27
28
 
28
- :where(h1, h2, h3, h4, button, input, label) {
29
- line-height: 1.1;
30
- }
29
+ :where(h1, h2, h3, h4, button, input, label) {
30
+ line-height: 1.1;
31
+ }
31
32
 
32
- p,
33
- h1,
34
- h2,
35
- h3,
36
- h4,
37
- h5,
38
- h6 {
39
- overflow-wrap: break-word;
40
- }
33
+ p,
34
+ h1,
35
+ h2,
36
+ h3,
37
+ h4,
38
+ h5,
39
+ h6 {
40
+ overflow-wrap: break-word;
41
+ }
41
42
 
42
- p {
43
- text-wrap: pretty;
44
- }
43
+ p {
44
+ text-wrap: pretty;
45
+ }
45
46
 
46
- a:not([class]) {
47
- text-decoration-skip-ink: auto;
48
- color: currentcolor;
49
- }
47
+ a:not([class]) {
48
+ text-decoration-skip-ink: auto;
49
+ color: currentcolor;
50
+ }
50
51
 
51
- video,
52
- canvas,
53
- svg,
54
- img,
55
- picture {
56
- max-width: 100%;
57
- display: block;
58
- }
52
+ video,
53
+ canvas,
54
+ svg,
55
+ img,
56
+ picture {
57
+ max-width: 100%;
58
+ display: block;
59
+ }
59
60
 
60
- img {
61
- height: auto;
62
- }
61
+ img {
62
+ height: auto;
63
+ }
63
64
 
64
- input,
65
- button,
66
- textarea,
67
- select {
68
- font-family: inherit;
69
- font-size: inherit;
70
- }
65
+ input,
66
+ button,
67
+ textarea,
68
+ select {
69
+ font-family: inherit;
70
+ font-size: inherit;
71
+ }
71
72
 
72
- textarea {
73
- /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
74
- resize: vertical;
73
+ textarea {
74
+ /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
75
+ resize: vertical;
75
76
 
76
- &:not([rows]) {
77
- min-height: 10em;
77
+ &:not([rows]) {
78
+ min-height: 10em;
79
+ }
78
80
  }
79
- }
80
81
 
81
- fieldset {
82
- min-width: 0;
83
- padding: 0;
84
- border: 0;
85
- }
82
+ fieldset {
83
+ min-width: 0;
84
+ padding: 0;
85
+ border: 0;
86
+ }
86
87
 
87
- b,
88
- strong {
89
- font-weight: bolder;
90
- }
88
+ b,
89
+ strong {
90
+ font-weight: bolder;
91
+ }
91
92
 
92
- table {
93
- caption-side: bottom;
94
- border-collapse: collapse;
95
- }
93
+ table {
94
+ caption-side: bottom;
95
+ border-collapse: collapse;
96
+ }
96
97
 
97
- iframe {
98
- border: 0;
99
- }
98
+ iframe {
99
+ border: 0;
100
+ }
100
101
 
101
- label {
102
- display: inline-block;
103
- }
102
+ label {
103
+ display: inline-block;
104
+ }
104
105
 
105
- [type='search'] {
106
- appearance: textfield;
107
- outline-offset: -2px;
108
- }
106
+ [type="search"] {
107
+ appearance: textfield;
108
+ outline-offset: -2px;
109
+ }
109
110
 
110
- [hidden] {
111
- display: none;
112
- }
111
+ [hidden] {
112
+ display: none;
113
+ }
113
114
 
114
- :target {
115
- scroll-margin-block: 5ex;
116
- }
115
+ :target {
116
+ scroll-margin-block: 5ex;
117
+ }
117
118
 
118
- ::placeholder {
119
- color: inherit;
120
- opacity: 1;
119
+ ::placeholder {
120
+ color: inherit;
121
+ opacity: 1;
122
+ }
121
123
  }
@@ -1,43 +1,45 @@
1
- :root {
2
- // Default
3
- --afs-button-font-size: 1rem;
4
- --afs-button-padding-x: 16px;
5
- --afs-button-padding-y: 6px;
6
- --afs-button-border-width: 1px;
7
- --afs-button-border-style: solid;
8
- --afs-button-border-color: #ccc;
9
- --afs-button-border-color-hover: #3a3a3a;
10
- --afs-button-border-radius: 4px;
11
- --afs-button-text-color: #000;
12
- --afs-button-text-color-hover: #fff;
13
- --afs-button-background: #fff;
14
- --afs-button-background-hover: #3a3a3a;
1
+ @mixin button() {
2
+ :root {
3
+ // Default
4
+ --afs-button-font-size: 1rem;
5
+ --afs-button-padding-x: 16px;
6
+ --afs-button-padding-y: 6px;
7
+ --afs-button-border-width: 1px;
8
+ --afs-button-border-style: solid;
9
+ --afs-button-border-color: #ccc;
10
+ --afs-button-border-color-hover: #3a3a3a;
11
+ --afs-button-border-radius: 4px;
12
+ --afs-button-text-color: #000;
13
+ --afs-button-text-color-hover: #fff;
14
+ --afs-button-background: #fff;
15
+ --afs-button-background-hover: #3a3a3a;
15
16
 
16
- // Primary
17
- --afs-button-primary-font-size: var(--afs-button-font-size);
18
- --afs-button-primary-padding-x: var(--afs-button-padding-x);
19
- --afs-button-primary-padding-y: var(--afs-button-padding-y);
20
- --afs-button-primary-border-width: var(--afs-button-border-width);
21
- --afs-button-primary-border-style: var(--afs-button-border-style);
22
- --afs-button-primary-border-radius: var(--afs-button-border-radius);
23
- --afs-button-primary-border-color: #a9b1b2;
24
- --afs-button-primary-border-color-hover: #ccc;
25
- --afs-button-primary-text-color: #000;
26
- --afs-button-primary-text-color-hover: #000;
27
- --afs-button-primary-background: #fff;
28
- --afs-button-primary-background-hover: #ccc;
17
+ // Primary
18
+ --afs-button-primary-font-size: var(--afs-button-font-size);
19
+ --afs-button-primary-padding-x: var(--afs-button-padding-x);
20
+ --afs-button-primary-padding-y: var(--afs-button-padding-y);
21
+ --afs-button-primary-border-width: var(--afs-button-border-width);
22
+ --afs-button-primary-border-style: var(--afs-button-border-style);
23
+ --afs-button-primary-border-radius: var(--afs-button-border-radius);
24
+ --afs-button-primary-border-color: #a9b1b2;
25
+ --afs-button-primary-border-color-hover: #ccc;
26
+ --afs-button-primary-text-color: #000;
27
+ --afs-button-primary-text-color-hover: #000;
28
+ --afs-button-primary-background: #fff;
29
+ --afs-button-primary-background-hover: #ccc;
29
30
 
30
- // Secondary
31
- --afs-button-secondary-font-size: var(--afs-button-font-size);
32
- --afs-button-secondary-padding-x: var(--afs-button-padding-x);
33
- --afs-button-secondary-padding-y: var(--afs-button-padding-y);
34
- --afs-button-secondary-border-width: var(--afs-button-border-width);
35
- --afs-button-secondary-border-style: var(--afs-button-border-style);
36
- --afs-button-secondary-border-radius: var(--afs-button-border-radius);
37
- --afs-button-secondary-border-color: #30387d;
38
- --afs-button-secondary-border-color-hover: #ccc;
39
- --afs-button-secondary-text-color: #000;
40
- --afs-button-secondary-text-color-hover: #000;
41
- --afs-button-secondary-background: #fff;
42
- --afs-button-secondary-background-hover: #ccc;
31
+ // Secondary
32
+ --afs-button-secondary-font-size: var(--afs-button-font-size);
33
+ --afs-button-secondary-padding-x: var(--afs-button-padding-x);
34
+ --afs-button-secondary-padding-y: var(--afs-button-padding-y);
35
+ --afs-button-secondary-border-width: var(--afs-button-border-width);
36
+ --afs-button-secondary-border-style: var(--afs-button-border-style);
37
+ --afs-button-secondary-border-radius: var(--afs-button-border-radius);
38
+ --afs-button-secondary-border-color: #30387d;
39
+ --afs-button-secondary-border-color-hover: #ccc;
40
+ --afs-button-secondary-text-color: #000;
41
+ --afs-button-secondary-text-color-hover: #000;
42
+ --afs-button-secondary-background: #fff;
43
+ --afs-button-secondary-background-hover: #ccc;
44
+ }
43
45
  }
@@ -1,12 +1,14 @@
1
- :root {
2
- --afs-container-max-width: 1200px;
3
- --afs-container-padding-x: 40px;
4
- }
1
+ @mixin container() {
2
+ :root {
3
+ --afs-container-max-width: 1200px;
4
+ --afs-container-padding-x: 40px;
5
+ }
5
6
 
6
- .container {
7
- margin-inline: auto;
8
- max-width: calc(
9
- var(--afs-container-max-width) + var(--afs-container-padding-x)
10
- );
11
- padding-inline: calc(var(--afs-container-padding-x) * 0.5);
7
+ .container {
8
+ margin-inline: auto;
9
+ max-width: calc(
10
+ var(--afs-container-max-width) + var(--afs-container-padding-x)
11
+ );
12
+ padding-inline: calc(var(--afs-container-padding-x) * 0.5);
13
+ }
12
14
  }
@@ -1,6 +1,8 @@
1
- [style*='wp-block-airfleet-elements'],
2
- section {
3
- &:nth-child(odd) {
4
- background-color: var(--afa-color-neutral-150);
1
+ @mixin section() {
2
+ [style*="wp-block-airfleet-elements"],
3
+ section {
4
+ &:nth-child(odd) {
5
+ background-color: var(--afa-color-neutral-150);
6
+ }
5
7
  }
6
8
  }