create-vanilla-js-with-css 1.0.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.
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "my-start-template-vite-vanilla-js-tailwind",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "devDependencies": {
12
+ "vite": "7.1.7"
13
+ }
14
+ }
@@ -0,0 +1,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="24" cy="24" r="24" fill="#F5F8FF"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="24" cy="24" r="24" fill="#F5F8FF"/>
3
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
@@ -0,0 +1 @@
1
+ export const api = 'sdfsdfsdf'
@@ -0,0 +1,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="24" cy="24" r="24" fill="#F5F8FF"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="24" cy="24" r="24" fill="#F5F8FF"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="24" cy="24" r="24" fill="#F5F8FF"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ .button {
2
+ @apply rounded-2xl bg-amber-50
3
+ }
@@ -0,0 +1 @@
1
+ export const buttonElement = document.querySelector('[data-js-button]')
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ import './styles'
2
+ import './components/Button.css'
3
+ import Tabs from './modules/Tabs'
4
+
5
+ Tabs()
@@ -0,0 +1,3 @@
1
+ export default () => {
2
+ // some functionality with tabs
3
+ }
File without changes
@@ -0,0 +1,9 @@
1
+ import { api } from "../api/base.api"
2
+
3
+ export default async () => {
4
+ const response = fetch(api)
5
+
6
+ const data = await response.json()
7
+
8
+ return data
9
+ }
@@ -0,0 +1,4 @@
1
+ @font-face {
2
+ font-family: "";
3
+ src: url();
4
+ }
File without changes
@@ -0,0 +1 @@
1
+ import './style.css'
@@ -0,0 +1,210 @@
1
+ /**
2
+ Нормализация блочной модели
3
+ */
4
+ *,
5
+ ::before,
6
+ ::after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ /**
11
+ Убираем внутренние отступы слева тегам списков,
12
+ у которых есть атрибут class
13
+ */
14
+ :where(ul, ol):where([class]) {
15
+ padding-left: 0;
16
+ }
17
+
18
+ /**
19
+ Убираем внешние отступы body и двум другим тегам,
20
+ у которых есть атрибут class
21
+ */
22
+ body,
23
+ :where(blockquote, figure, fieldset):where([class]) {
24
+ margin: 0;
25
+ }
26
+
27
+ /**
28
+ Убираем внешние отступы вертикали нужным тегам,
29
+ у которых есть атрибут class
30
+ */
31
+ :where(
32
+ h1,
33
+ h2,
34
+ h3,
35
+ h4,
36
+ h5,
37
+ h6,
38
+ p,
39
+ ul,
40
+ ol,
41
+ dl
42
+ ):where([class]) {
43
+ margin-block: 0;
44
+ }
45
+
46
+ :where(dd[class]) {
47
+ margin-left: 0;
48
+ }
49
+
50
+ :where(fieldset[class]) {
51
+ padding: 0;
52
+ border: none;
53
+ }
54
+
55
+ /**
56
+ Убираем стандартный маркер маркированному списку,
57
+ у которого есть атрибут class
58
+ */
59
+ :where(ul[class]) {
60
+ list-style: none;
61
+ }
62
+
63
+ :where(address[class]) {
64
+ font-style: normal;
65
+ }
66
+
67
+ /**
68
+ Обнуляем вертикальные внешние отступы параграфа,
69
+ объявляем локальную переменную для внешнего отступа вниз,
70
+ чтобы избежать взаимодействие с более сложным селектором
71
+ */
72
+ p {
73
+ --paragraphMarginBottom: 24px;
74
+
75
+ margin-block: 0;
76
+ }
77
+
78
+ /**
79
+ Внешний отступ вниз для параграфа без атрибута class,
80
+ который расположен не последним среди своих соседних элементов
81
+ */
82
+ p:where(:not([class]):not(:last-child)) {
83
+ margin-bottom: var(--paragraphMarginBottom);
84
+ }
85
+
86
+
87
+ /**
88
+ Упрощаем работу с изображениями и видео
89
+ */
90
+ img,
91
+ video {
92
+ display: block;
93
+ max-width: 100%;
94
+ height: auto;
95
+ }
96
+
97
+ /**
98
+ Наследуем свойства шрифт для полей ввода
99
+ */
100
+ input,
101
+ textarea,
102
+ select,
103
+ button {
104
+ font: inherit;
105
+ }
106
+
107
+ html {
108
+ /**
109
+ Пригодится в большинстве ситуаций
110
+ (когда, например, нужно будет "прижать" футер к низу сайта)
111
+ */
112
+ height: 100%;
113
+ /**
114
+ Убираем скачок интерфейса по горизонтали
115
+ при появлении / исчезновении скроллбара
116
+ */
117
+ scrollbar-gutter: stable;
118
+ /**
119
+ Плавный скролл
120
+ */
121
+ scroll-behavior: smooth;
122
+ }
123
+
124
+ body {
125
+ /**
126
+ Пригодится в большинстве ситуаций
127
+ (когда, например, нужно будет "прижать" футер к низу сайта)
128
+ */
129
+ min-height: 100%;
130
+ /**
131
+ Унифицированный интерлиньяж
132
+ */
133
+ line-height: 1.5;
134
+ }
135
+
136
+ /**
137
+ Нормализация высоты элемента ссылки при его инспектировании в DevTools
138
+ */
139
+ a:where([class]) {
140
+ display: inline-flex;
141
+ }
142
+
143
+ /**
144
+ Курсор-рука при наведении на элемент
145
+ */
146
+ button,
147
+ label {
148
+ cursor: pointer;
149
+ }
150
+
151
+ /**
152
+ Убирает серую подсветку при тапе на мобильных устройствах (iOS/Android)
153
+ */
154
+ button {
155
+ -webkit-tap-highlight-color: transparent;
156
+ }
157
+
158
+ /**
159
+ Приводим к единому цвету svg-элементы
160
+ (за исключением тех, у которых уже указан
161
+ атрибут fill со значением 'none' или начинается с 'url')
162
+ */
163
+ :where([fill]:not(
164
+ [fill="none"],
165
+ [fill^="url"]
166
+ )) {
167
+ fill: currentColor;
168
+ }
169
+
170
+ /**
171
+ Приводим к единому цвету svg-элементы
172
+ (за исключением тех, у которых уже указан
173
+ атрибут stroke со значением 'none')
174
+ */
175
+ :where([stroke]:not(
176
+ [stroke="none"],
177
+ [stroke^="url"]
178
+ )) {
179
+ stroke: currentColor;
180
+ }
181
+
182
+ /**
183
+ Чиним баг задержки смены цвета при взаимодействии с svg-элементами
184
+ */
185
+ svg * {
186
+ transition-property: fill, stroke;
187
+ }
188
+
189
+ /**
190
+ Приведение рамок таблиц в классический 'collapse' вид
191
+ */
192
+ :where(table) {
193
+ border-collapse: collapse;
194
+ border-color: currentColor;
195
+ }
196
+
197
+ /**
198
+ Удаляем все анимации и переходы для людей,
199
+ которые предпочитают их не использовать
200
+ */
201
+ @media (prefers-reduced-motion: reduce) {
202
+ *,
203
+ ::before,
204
+ ::after {
205
+ animation-duration: 0.01ms !important;
206
+ animation-iteration-count: 1 !important;
207
+ transition-duration: 0.01ms !important;
208
+ scroll-behavior: auto !important;
209
+ }
210
+ }
@@ -0,0 +1,13 @@
1
+ @import './normalize.css';
2
+ @import './fonts.css';
3
+ @import './globals.css';
4
+ @import './variables.css';
5
+
6
+ @import '@/layouts/Header.css';
7
+ @import '@/layouts/Main.css';
8
+ @import '@/layouts/Section.css';
9
+ @import '@/layouts/Footer.css';
10
+
11
+ @import '@/sections/About-us.css';
12
+
13
+ @import '@/components/Button.css';
File without changes
@@ -0,0 +1,3 @@
1
+ export default () => {
2
+ // some render functionality
3
+ }
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from 'vite'
2
+ import path from 'path'
3
+
4
+ export default defineConfig({
5
+ resolve: {
6
+ alias: [
7
+ {
8
+ find: '@',
9
+ replacement: path.resolve('src')
10
+ }
11
+ ]
12
+ }
13
+ })