Merge branch 'master' of git.flexites.org:Students/ITRadio
This commit is contained in:
commit
2a231edd46
|
|
@ -1,3 +1,11 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
printWidth: 120,
|
||||||
|
tabWidth: 2,
|
||||||
|
tabs: false,
|
||||||
|
semi: true,
|
||||||
singleQuote: true,
|
singleQuote: true,
|
||||||
|
trailingComma: 'all',
|
||||||
|
bracketSpacing: true,
|
||||||
|
arrowParens: 'always',
|
||||||
|
endOfLine: 'auto',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"extends": ["stylelint-config-standard-scss", "stylelint-config-clean-order"],
|
||||||
|
"rules": {
|
||||||
|
"selector-class-pattern": null,
|
||||||
|
"scss/load-partial-extension": "always"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
A Al project
|
A Al project
|
||||||
|
|
||||||
## Install the dependencies
|
## Install the dependencies
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn
|
yarn
|
||||||
# or
|
# or
|
||||||
|
|
@ -10,24 +11,25 @@ npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Start the app in development mode (hot-code reloading, error reporting, etc.)
|
### Start the app in development mode (hot-code reloading, error reporting, etc.)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
quasar dev
|
quasar dev
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Lint the files
|
### Lint the files
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn lint
|
yarn lint
|
||||||
# or
|
# or
|
||||||
npm run lint
|
npm run lint
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Build the app for production
|
### Build the app for production
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
quasar build
|
quasar build
|
||||||
```
|
```
|
||||||
|
|
||||||
### Customize the configuration
|
### Customize the configuration
|
||||||
|
|
||||||
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js).
|
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js).
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,7 @@ module.exports = (api) => {
|
||||||
presets: [
|
presets: [
|
||||||
[
|
[
|
||||||
'@quasar/babel-preset-app',
|
'@quasar/babel-preset-app',
|
||||||
api.caller((caller) => caller && caller.target === 'node')
|
api.caller((caller) => caller && caller.target === 'node') ? { targets: { node: 'current' } } : {},
|
||||||
? { targets: { node: 'current' } }
|
|
||||||
: {},
|
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,38 +2,16 @@
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"src/*": [
|
"src/*": ["src/*"],
|
||||||
"src/*"
|
"app/*": ["*"],
|
||||||
],
|
"components/*": ["src/components/*"],
|
||||||
"app/*": [
|
"layouts/*": ["src/layouts/*"],
|
||||||
"*"
|
"pages/*": ["src/pages/*"],
|
||||||
],
|
"assets/*": ["src/assets/*"],
|
||||||
"components/*": [
|
"boot/*": ["src/boot/*"],
|
||||||
"src/components/*"
|
"stores/*": ["src/stores/*"],
|
||||||
],
|
"vue$": ["node_modules/vue/dist/vue.runtime.esm-bundler.js"]
|
||||||
"layouts/*": [
|
|
||||||
"src/layouts/*"
|
|
||||||
],
|
|
||||||
"pages/*": [
|
|
||||||
"src/pages/*"
|
|
||||||
],
|
|
||||||
"assets/*": [
|
|
||||||
"src/assets/*"
|
|
||||||
],
|
|
||||||
"boot/*": [
|
|
||||||
"src/boot/*"
|
|
||||||
],
|
|
||||||
"stores/*": [
|
|
||||||
"src/stores/*"
|
|
||||||
],
|
|
||||||
"vue$": [
|
|
||||||
"node_modules/vue/dist/vue.runtime.esm-bundler.js"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"exclude": [
|
"exclude": ["dist", ".quasar", "node_modules"]
|
||||||
"dist",
|
|
||||||
".quasar",
|
|
||||||
"node_modules"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -7,7 +7,9 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint --ext .js,.vue ./",
|
"lint": "eslint --ext .js,.vue ./",
|
||||||
"lint:fix": "eslint --ext .js,.vue --fix ./",
|
"lint:fix": "eslint --ext .js,.vue, --fix ./",
|
||||||
|
"lint:css": "stylelint '**/*.scss'",
|
||||||
|
"lint:css:fix": "npm run lint:css -- --fix",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"serve": "npx cross-env NODE_ENV=development quasar dev",
|
"serve": "npx cross-env NODE_ENV=development quasar dev",
|
||||||
"serve:ssr": "quasar dev -m ssr",
|
"serve:ssr": "quasar dev -m ssr",
|
||||||
|
|
@ -64,6 +66,10 @@
|
||||||
"postcss-simple-vars": "^7.0.1",
|
"postcss-simple-vars": "^7.0.1",
|
||||||
"prettier": "^3.3.2",
|
"prettier": "^3.3.2",
|
||||||
"sass-loader": "^13.3.2",
|
"sass-loader": "^13.3.2",
|
||||||
|
"stylelint": "^16.7.0",
|
||||||
|
"stylelint-config-clean-order": "^6.1.0",
|
||||||
|
"stylelint-config-standard": "^36.0.1",
|
||||||
|
"stylelint-config-standard-scss": "^13.1.0",
|
||||||
"vue-loader": "^17.3.0"
|
"vue-loader": "^17.3.0"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
|
|
|
||||||
|
|
@ -80,9 +80,7 @@ module.exports = configure(function (ctx) {
|
||||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||||
|
|
||||||
chainWebpack(chain) {
|
chainWebpack(chain) {
|
||||||
chain
|
chain.plugin('eslint-webpack-plugin').use(ESLintPlugin, [{ extensions: ['js', 'vue'] }]);
|
||||||
.plugin('eslint-webpack-plugin')
|
|
||||||
.use(ESLintPlugin, [{ extensions: ['js', 'vue'] }]);
|
|
||||||
// chain.plugin('normal-module-replacement').use(
|
// chain.plugin('normal-module-replacement').use(
|
||||||
// new webpack.NormalModuleReplacementPlugin(/settings$/, function(resource) {
|
// new webpack.NormalModuleReplacementPlugin(/settings$/, function(resource) {
|
||||||
// resource.request = resource.request.replace(/settings$/, `settings/${process.env.NODE_ENV}`);
|
// resource.request = resource.request.replace(/settings$/, `settings/${process.env.NODE_ENV}`);
|
||||||
|
|
@ -193,9 +191,7 @@ module.exports = configure(function (ctx) {
|
||||||
// Tell browser when a file from the server should expire from cache (in ms)
|
// Tell browser when a file from the server should expire from cache (in ms)
|
||||||
|
|
||||||
chainWebpackWebserver(chain) {
|
chainWebpackWebserver(chain) {
|
||||||
chain
|
chain.plugin('eslint-webpack-plugin').use(ESLintPlugin, [{ extensions: ['js'] }]);
|
||||||
.plugin('eslint-webpack-plugin')
|
|
||||||
.use(ESLintPlugin, [{ extensions: ['js'] }]);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
middlewares: [
|
middlewares: [
|
||||||
|
|
@ -213,9 +209,7 @@ module.exports = configure(function (ctx) {
|
||||||
// if using workbox in InjectManifest mode
|
// if using workbox in InjectManifest mode
|
||||||
|
|
||||||
chainWebpackCustomSW(chain) {
|
chainWebpackCustomSW(chain) {
|
||||||
chain
|
chain.plugin('eslint-webpack-plugin').use(ESLintPlugin, [{ extensions: ['js'] }]);
|
||||||
.plugin('eslint-webpack-plugin')
|
|
||||||
.use(ESLintPlugin, [{ extensions: ['js'] }]);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
manifest: {
|
manifest: {
|
||||||
|
|
@ -290,15 +284,11 @@ module.exports = configure(function (ctx) {
|
||||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||||
|
|
||||||
chainWebpackMain(chain) {
|
chainWebpackMain(chain) {
|
||||||
chain
|
chain.plugin('eslint-webpack-plugin').use(ESLintPlugin, [{ extensions: ['js'] }]);
|
||||||
.plugin('eslint-webpack-plugin')
|
|
||||||
.use(ESLintPlugin, [{ extensions: ['js'] }]);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
chainWebpackPreload(chain) {
|
chainWebpackPreload(chain) {
|
||||||
chain
|
chain.plugin('eslint-webpack-plugin').use(ESLintPlugin, [{ extensions: ['js'] }]);
|
||||||
.plugin('eslint-webpack-plugin')
|
|
||||||
.use(ESLintPlugin, [{ extensions: ['js'] }]);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -23,15 +23,7 @@ import Player from '@/components/player.vue';
|
||||||
import ChangingUser from '@/components/modal/сhanging-user.vue';
|
import ChangingUser from '@/components/modal/сhanging-user.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
async preFetch({
|
async preFetch({ store, currentRoute, previousRoute, redirect, ssrContext, urlPath, publicPath }) {},
|
||||||
store,
|
|
||||||
currentRoute,
|
|
||||||
previousRoute,
|
|
||||||
redirect,
|
|
||||||
ssrContext,
|
|
||||||
urlPath,
|
|
||||||
publicPath,
|
|
||||||
}) {},
|
|
||||||
components: {
|
components: {
|
||||||
ChangingUser,
|
ChangingUser,
|
||||||
Player,
|
Player,
|
||||||
|
|
|
||||||
|
|
@ -4,19 +4,23 @@
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
margin: 0;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
@mixin p;
|
@mixin p;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h1 {
|
.h1 {
|
||||||
@mixin h1;
|
@mixin h1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h2, h2 {
|
.h2,
|
||||||
|
h2 {
|
||||||
@mixin h2;
|
@mixin h2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -34,10 +38,12 @@ h1{
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
@mixin p;
|
@mixin p;
|
||||||
color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
|
||||||
font-size: 34px;
|
font-size: 34px;
|
||||||
|
color: transparent;
|
||||||
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
|
|
||||||
&.m--white {
|
&.m--white {
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
@ -58,21 +64,25 @@ h1{
|
||||||
.a,
|
.a,
|
||||||
a {
|
a {
|
||||||
@mixin a;
|
@mixin a;
|
||||||
|
|
||||||
/* @mixin a--color $color-base; */
|
/* @mixin a--color $color-base; */
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
scrollbar-color: var(--color-black) var(--bg-opacity);
|
scrollbar-color: var(--color-black) var(--bg-opacity);
|
||||||
scrollbar-gutter: stable;
|
|
||||||
scrollbar-width: thin;
|
scrollbar-width: thin;
|
||||||
|
scrollbar-gutter: stable;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
padding: 0 !important;
|
||||||
|
|
||||||
|
font-family: var(--font-family-base);
|
||||||
font-size: var(--base-fz);
|
font-size: var(--base-fz);
|
||||||
line-height: var(--base-lh);
|
line-height: var(--base-lh);
|
||||||
background: var(--color-black);
|
|
||||||
font-family: var(--font-family-base);
|
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
padding: 0 !important;
|
|
||||||
|
background: var(--color-black);
|
||||||
}
|
}
|
||||||
|
|
||||||
.button {
|
.button {
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,29 @@
|
||||||
@import "./mixins/responsive.scss";
|
@import './mixins/responsive.scss';
|
||||||
@import "./setting.scss";
|
@import './setting.scss';
|
||||||
@import "./lib/reset.css";
|
@import './lib/reset.css';
|
||||||
@import './lib/fonts.css';
|
@import './lib/fonts.css';
|
||||||
@import "./mixins/form.scss";
|
@import './mixins/form.scss';
|
||||||
@import "./mixins/text.scss";
|
@import './mixins/text.scss';
|
||||||
@import "./common.scss";
|
@import './common.scss';
|
||||||
@import "./module/app.scss";
|
@import './module/app.scss';
|
||||||
@import "./module/app-header.scss";
|
@import './module/app-header.scss';
|
||||||
@import "./module/app-footer.scss";
|
@import './module/app-footer.scss';
|
||||||
@import "./module/app-breadcrumbs.scss";
|
@import './module/app-breadcrumbs.scss';
|
||||||
@import "./module/modal.scss";
|
@import './module/modal.scss';
|
||||||
@import "./module/fiald.scss";
|
@import './module/fiald.scss';
|
||||||
@import "./module/pagination.scss";
|
@import './module/pagination.scss';
|
||||||
@import "./module/home.scss";
|
@import './module/home.scss';
|
||||||
@import "./module/team.scss";
|
@import './module/team.scss';
|
||||||
@import "./module/rubric.scss";
|
@import './module/rubric.scss';
|
||||||
@import "./module/blog.scss";
|
@import './module/blog.scss';
|
||||||
@import "./module/authentication.scss";
|
@import './module/authentication.scss';
|
||||||
@import "./module/tabs.scss";
|
@import './module/tabs.scss';
|
||||||
@import "./module/about.scss";
|
@import './module/about.scss';
|
||||||
@import "./module/playlists.scss";
|
@import './module/playlists.scss';
|
||||||
@import "./module/playlist.scss";
|
@import './module/playlist.scss';
|
||||||
@import "./module/contacts.scss";
|
@import './module/contacts.scss';
|
||||||
@import "./module/support.scss";
|
@import './module/support.scss';
|
||||||
@import "./module/player.scss";
|
@import './module/player.scss';
|
||||||
@import "./module/loader.scss";
|
@import './module/loader.scss';
|
||||||
@import "./module/profile.scss";
|
@import './module/profile.scss';
|
||||||
@import "./module/song.scss";
|
@import './module/song.scss';
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,4 +68,3 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,84 @@
|
||||||
html, body, div, span, applet, object, iframe,
|
html,
|
||||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
body,
|
||||||
a, abbr, acronym, address, big, cite, code,
|
div,
|
||||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
span,
|
||||||
small, strike, strong, sub, sup, tt, var,
|
applet,
|
||||||
b, u, i, center,
|
object,
|
||||||
dl, dt, dd, ol, ul, li,
|
iframe,
|
||||||
fieldset, form, label, legend,
|
h1,
|
||||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
h2,
|
||||||
article, aside, canvas, details, embed,
|
h3,
|
||||||
figure, figcaption, footer, header, hgroup,
|
h4,
|
||||||
menu, nav, output, ruby, section, summary,
|
h5,
|
||||||
time, mark, audio, video {
|
h6,
|
||||||
|
p,
|
||||||
|
blockquote,
|
||||||
|
pre,
|
||||||
|
a,
|
||||||
|
abbr,
|
||||||
|
acronym,
|
||||||
|
address,
|
||||||
|
big,
|
||||||
|
cite,
|
||||||
|
code,
|
||||||
|
del,
|
||||||
|
dfn,
|
||||||
|
em,
|
||||||
|
img,
|
||||||
|
ins,
|
||||||
|
kbd,
|
||||||
|
q,
|
||||||
|
s,
|
||||||
|
samp,
|
||||||
|
small,
|
||||||
|
strike,
|
||||||
|
strong,
|
||||||
|
sub,
|
||||||
|
sup,
|
||||||
|
tt,
|
||||||
|
var,
|
||||||
|
b,
|
||||||
|
u,
|
||||||
|
i,
|
||||||
|
center,
|
||||||
|
dl,
|
||||||
|
dt,
|
||||||
|
dd,
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
li,
|
||||||
|
fieldset,
|
||||||
|
form,
|
||||||
|
label,
|
||||||
|
legend,
|
||||||
|
table,
|
||||||
|
caption,
|
||||||
|
tbody,
|
||||||
|
tfoot,
|
||||||
|
thead,
|
||||||
|
tr,
|
||||||
|
th,
|
||||||
|
td,
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
canvas,
|
||||||
|
details,
|
||||||
|
embed,
|
||||||
|
figure,
|
||||||
|
figcaption,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
menu,
|
||||||
|
nav,
|
||||||
|
output,
|
||||||
|
ruby,
|
||||||
|
section,
|
||||||
|
summary,
|
||||||
|
time,
|
||||||
|
mark,
|
||||||
|
audio,
|
||||||
|
video {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border: 0;
|
border: 0;
|
||||||
|
|
@ -18,8 +86,17 @@ time, mark, audio, video {
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
article, aside, details, figcaption, figure,
|
article,
|
||||||
footer, header, hgroup, menu, nav, section {
|
aside,
|
||||||
|
details,
|
||||||
|
figcaption,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
menu,
|
||||||
|
nav,
|
||||||
|
section {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -27,16 +104,20 @@ body {
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ol, ul {
|
ol,
|
||||||
|
ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
blockquote, q {
|
blockquote,
|
||||||
|
q {
|
||||||
quotes: none;
|
quotes: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
blockquote:before, blockquote:after,
|
blockquote:before,
|
||||||
q:before, q:after {
|
blockquote:after,
|
||||||
|
q:before,
|
||||||
|
q:after {
|
||||||
content: none;
|
content: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,7 +126,9 @@ table {
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
input, textarea, select {
|
input,
|
||||||
|
textarea,
|
||||||
|
select {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
font-weight: inherit;
|
font-weight: inherit;
|
||||||
|
|
|
||||||
|
|
@ -1,53 +1,66 @@
|
||||||
@define-mixin input {
|
@define-mixin input {
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding: 1rem 1.2rem;
|
||||||
|
|
||||||
|
color: var(--color-white);
|
||||||
|
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 1px solid var(--color-white);
|
border: 1px solid var(--color-white);
|
||||||
border-radius: 40px;
|
border-radius: 40px;
|
||||||
padding: 1rem 1.2rem;
|
|
||||||
width: 100%;
|
|
||||||
color: var(--color-white);
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
}
|
||||||
@define-mixin button {
|
|
||||||
font-family: var(--font-family-base);
|
|
||||||
|
|
||||||
color: var(--color-white);
|
@define-mixin button {
|
||||||
min-width: 220px;
|
cursor: pointer;
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
vertical-align: middle;
|
min-width: 220px;
|
||||||
|
min-height: 3rem;
|
||||||
|
|
||||||
|
font-family: var(--font-family-base);
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1rem;
|
||||||
|
color: var(--color-white);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-weight: 500;
|
vertical-align: middle;
|
||||||
font-size: 1rem;
|
|
||||||
line-height: 1rem;
|
|
||||||
border-radius: 100px;
|
|
||||||
cursor: pointer;
|
|
||||||
border: 1px solid var(--color-white);
|
|
||||||
min-height: 3rem;
|
|
||||||
transition: border 0.5s ease, background 0.5s ease, color 0.5s ease;
|
|
||||||
background: transparent;
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
|
|
||||||
|
background: transparent;
|
||||||
|
border: 1px solid var(--color-white);
|
||||||
|
border-radius: 100px;
|
||||||
|
|
||||||
|
transition:
|
||||||
|
border 0.5s ease,
|
||||||
|
background 0.5s ease,
|
||||||
|
color 0.5s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
color: var(--color-black);
|
color: var(--color-black);
|
||||||
background: var(--color-white);
|
background: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
||||||
&-violet {
|
&-violet {
|
||||||
border-color: var(--color-primary);
|
|
||||||
color: var(--color-primary);
|
color: var(--color-primary);
|
||||||
|
border-color: var(--color-primary);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.is-active,
|
&.is-active,
|
||||||
&:active {
|
&:active {
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
color: var(--color-black);
|
color: var(--color-black);
|
||||||
background: var(--color-white-darker);
|
background: var(--color-white-darker);
|
||||||
}
|
}
|
||||||
|
|
@ -67,9 +80,10 @@
|
||||||
&.m--blur {
|
&.m--blur {
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
padding: 1rem 1.5rem;
|
padding: 1rem 1.5rem;
|
||||||
|
|
||||||
background: var(--bg-opacity);
|
background: var(--bg-opacity);
|
||||||
border: none;
|
|
||||||
backdrop-filter: blur(5px);
|
backdrop-filter: blur(5px);
|
||||||
|
border: none;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: var(--color-white);
|
background: var(--color-white);
|
||||||
|
|
@ -84,25 +98,30 @@
|
||||||
|
|
||||||
&.m--arrow {
|
&.m--arrow {
|
||||||
&::after {
|
&::after {
|
||||||
margin-left: 10px;
|
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
width: 20px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
margin-left: 10px;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
transition: background 0.3s ease, width 0.3s ease;
|
|
||||||
|
transition:
|
||||||
|
background 0.3s ease,
|
||||||
|
width 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover::after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#232323) no-repeat 100%;
|
|
||||||
width: 45px;
|
width: 45px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#232323) no-repeat 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--active,
|
&.m--active,
|
||||||
&:active {
|
&:active {
|
||||||
background:transparent;
|
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -124,7 +143,9 @@
|
||||||
content: '';
|
content: '';
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#232323) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#232323) no-repeat 100%;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
transition: background 0.3s ease, width 0.3s ease;
|
transition:
|
||||||
|
background 0.3s ease,
|
||||||
|
width 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover::after {
|
&:hover::after {
|
||||||
|
|
@ -132,58 +153,65 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--text-link {
|
&.m--text-link {
|
||||||
border: none;
|
@mixin a;
|
||||||
pad: 0;
|
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
pad: 0;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
@mixin a;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--circle {
|
&.m--circle {
|
||||||
width: 56px;
|
|
||||||
height: 56px;
|
|
||||||
min-width: 0;
|
|
||||||
border-color: var(--color-white-opacity);
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
&:before {
|
width: 56px;
|
||||||
background: var(--linear-gradient);
|
min-width: 0;
|
||||||
|
height: 56px;
|
||||||
|
|
||||||
|
border-color: var(--color-white-opacity);
|
||||||
|
|
||||||
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
inset: 0;
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity .3s ease;
|
background: var(--linear-gradient);
|
||||||
|
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
inset: 0;
|
||||||
left: 0;
|
transform: rotate(-45deg);
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
margin: auto auto;
|
margin: auto;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#404145FF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#404145FF) no-repeat 100%;
|
||||||
transform: rotate(-45deg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:before {
|
&:hover::before {
|
||||||
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
@define-mixin responsive-xl {
|
@define-mixin responsive-xl {
|
||||||
@media (max-width: $document-width-xl) {
|
@media (max-width: $document-width-xl) {
|
||||||
@mixin-content;
|
@mixin-content;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -11,31 +10,26 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@define-mixin responsive-m {
|
@define-mixin responsive-m {
|
||||||
@media (max-width: $document-width-m) {
|
@media (max-width: $document-width-m) {
|
||||||
@mixin-content;
|
@mixin-content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@define-mixin responsive-s {
|
@define-mixin responsive-s {
|
||||||
@media (max-width: $document-width-s) {
|
@media (max-width: $document-width-s) {
|
||||||
@mixin-content;
|
@mixin-content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@define-mixin responsive-xs {
|
@define-mixin responsive-xs {
|
||||||
@media (max-width: $document-width-xs) {
|
@media (max-width: $document-width-xs) {
|
||||||
@mixin-content;
|
@mixin-content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@define-mixin responsive-xxs {
|
@define-mixin responsive-xxs {
|
||||||
@media (max-width: $document-width-xxs) {
|
@media (max-width: $document-width-xxs) {
|
||||||
@mixin-content;
|
@mixin-content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
@define-mixin __p {
|
@define-mixin __p {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
@ -33,67 +34,79 @@
|
||||||
@define-mixin h1 {
|
@define-mixin h1 {
|
||||||
@mixin __p;
|
@mixin __p;
|
||||||
|
|
||||||
/*margin-top: 32px;*/
|
|
||||||
margin-bottom: 1.5rem;
|
|
||||||
font-size: 100px;
|
|
||||||
line-height: 1.2;
|
|
||||||
font-weight: 500;
|
|
||||||
color: var(--color-white);
|
|
||||||
padding-bottom: 6px;
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
font-size: 84px;
|
font-size: 84px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
font-size: 48px;
|
font-size: 48px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
font-size: 36px;
|
font-size: 36px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* margin-top: 32px; */
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
padding-bottom: 6px;
|
||||||
|
|
||||||
|
font-size: 100px;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.2;
|
||||||
|
color: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
||||||
@define-mixin h2 {
|
@define-mixin h2 {
|
||||||
@mixin __p;
|
@mixin __p;
|
||||||
|
|
||||||
margin: 2.5rem 0;
|
|
||||||
font-size: 3.375rem;
|
|
||||||
line-height: 1.3;
|
|
||||||
font-weight: 500;
|
|
||||||
color: transparent;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
|
||||||
text-transform: uppercase;
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
line-height: 1.1;
|
line-height: 1.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
font-size: 32px;
|
font-size: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
margin: 2.5rem 0;
|
||||||
|
padding-bottom: 6px;
|
||||||
|
|
||||||
|
font-size: 3.375rem;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.3;
|
||||||
|
color: transparent;
|
||||||
|
text-transform: uppercase;
|
||||||
|
|
||||||
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
|
|
||||||
/* @mixin responsive-s {
|
/* @mixin responsive-s {
|
||||||
font-size: 36px;
|
font-size: 36px;
|
||||||
} */
|
} */
|
||||||
&.m--white {
|
&.m--white {
|
||||||
color: var(--color-white);
|
|
||||||
margin: 1.5rem 0;
|
margin: 1.5rem 0;
|
||||||
|
color: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--border {
|
&.m--border {
|
||||||
&:after {
|
&::after {
|
||||||
margin-top: 10px;
|
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
display: block;
|
display: block;
|
||||||
background: url("./assets/img/icon/borderLine.svg");
|
|
||||||
max-width: 260px;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
max-width: 260px;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
|
margin-top: 10px;
|
||||||
|
|
||||||
|
background: url('./assets/img/icon/borderLine.svg');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
|
text-decoration: none;
|
||||||
transition: color 0.5s ease;
|
transition: color 0.5s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
@ -107,8 +120,9 @@
|
||||||
|
|
||||||
margin-top: 24px;
|
margin-top: 24px;
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
font-weight: 700;
|
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
font-weight: 700;
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -117,13 +131,15 @@
|
||||||
|
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
font-weight: 500;
|
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
font-weight: 500;
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@define-mixin p {
|
@define-mixin p {
|
||||||
@mixin __p;
|
@mixin __p;
|
||||||
|
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
@ -131,13 +147,13 @@
|
||||||
@define-mixin ul {
|
@define-mixin ul {
|
||||||
@mixin p;
|
@mixin p;
|
||||||
|
|
||||||
list-style: none;
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
padding-left: 15px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
|
padding-left: 15px;
|
||||||
|
|
||||||
/* &:before {
|
/* &:before {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
@ -151,13 +167,16 @@
|
||||||
background-image: svg-load('assets/img/icons/vector.svg', fill=$color-red);
|
background-image: svg-load('assets/img/icons/vector.svg', fill=$color-red);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
} */
|
} */
|
||||||
&:before {
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
top: 7px;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|
||||||
width: 5px;
|
width: 5px;
|
||||||
height: 5px;
|
height: 5px;
|
||||||
top: 7px;
|
|
||||||
background: var(--color-white);
|
background: var(--color-white);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
@ -171,11 +190,14 @@
|
||||||
li {
|
li {
|
||||||
padding-left: 1rem;
|
padding-left: 1rem;
|
||||||
|
|
||||||
&:before {
|
&::before {
|
||||||
content: '•';
|
content: '•';
|
||||||
|
|
||||||
top: 0;
|
top: 0;
|
||||||
height: auto;
|
|
||||||
width: auto;
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
|
||||||
background: none;
|
background: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -185,18 +207,21 @@
|
||||||
@define-mixin ol {
|
@define-mixin ol {
|
||||||
@mixin p;
|
@mixin p;
|
||||||
|
|
||||||
list-style: none;
|
|
||||||
counter-reset: item;
|
counter-reset: item;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
counter-increment: item;
|
counter-increment: item;
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|
||||||
&:before {
|
&::before {
|
||||||
content: counter(item);
|
content: counter(item);
|
||||||
|
|
||||||
padding-left: 12px;
|
padding-left: 12px;
|
||||||
font-weight: 500;
|
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
font-weight: 500;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
@ -208,18 +233,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@define-mixin a {
|
@define-mixin a {
|
||||||
text-decoration: none;
|
|
||||||
font-weight: 500;
|
|
||||||
transition: all 0.5s ease;
|
|
||||||
color: var(--color-white);
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
&:hover {
|
|
||||||
color: transparent;
|
font-weight: 500;
|
||||||
-webkit-background-clip: text;
|
color: var(--color-white);
|
||||||
background-image: var(--linear-gradient);
|
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
||||||
|
transition: all 0.5s ease;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
|
|
||||||
|
color: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--link {
|
&.m--link {
|
||||||
|
|
@ -228,13 +258,18 @@
|
||||||
border-bottom: 1px solid transparent;
|
border-bottom: 1px solid transparent;
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
margin-left: 10px;
|
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
width: 20px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
margin-left: 10px;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
transition: background 0.3s ease, width 0.3s ease;
|
|
||||||
|
transition:
|
||||||
|
background 0.3s ease,
|
||||||
|
width 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&-right {
|
&-right {
|
||||||
flex: 1 1 auto;
|
|
||||||
background: url("./assets/img/bg/about-banner.svg") no-repeat 50% 60%;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
background: url('./assets/img/bg/about-banner.svg') no-repeat 50% 60%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-description {
|
&-description {
|
||||||
|
|
@ -60,24 +60,25 @@
|
||||||
margin-bottom: var(--space-between-sections);
|
margin-bottom: var(--space-between-sections);
|
||||||
|
|
||||||
&-item {
|
&-item {
|
||||||
width: calc(100% / 3 - 20px / 3);
|
|
||||||
min-height: 725px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
background-size: cover;
|
|
||||||
|
width: calc(100% / 3 - 20px / 3);
|
||||||
|
min-height: 725px;
|
||||||
|
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
|
||||||
&.m--gallery-item-one {
|
&.m--gallery-item-one {
|
||||||
background-image: url("./assets/img/bg/gallery-item-one.svg");
|
background-image: url('./assets/img/bg/gallery-item-one.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--gallery-item-two {
|
&.m--gallery-item-two {
|
||||||
background-image: url("./assets/img/bg/gallery-item-two.svg");
|
background-image: url('./assets/img/bg/gallery-item-two.svg');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--gallery-item-three {
|
&.m--gallery-item-three {
|
||||||
background-image: url("./assets/img/bg/gallery-item-three.svg");
|
background-image: url('./assets/img/bg/gallery-item-three.svg');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -101,16 +102,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&-list {
|
&-list {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&-item {
|
&-item {
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
padding-bottom: 1.5rem;
|
|
||||||
margin-bottom: 1.5rem;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
padding-bottom: 1.5rem;
|
||||||
|
|
||||||
border-bottom: 1px solid var(--color-white-opacity);
|
border-bottom: 1px solid var(--color-white-opacity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,16 +2,20 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-top: 80px;
|
margin-top: 80px;
|
||||||
margin-bottom: var(--space-between-block);
|
margin-bottom: var(--space-between-block);
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
&:last-child:after{
|
|
||||||
|
&::after {
|
||||||
|
content: '/';
|
||||||
|
margin: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child::after {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
&:after{
|
|
||||||
margin: 0 10px;
|
|
||||||
content: '/';
|
|
||||||
}
|
|
||||||
&-link {
|
&-link {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,23 @@
|
||||||
.footer {
|
.footer {
|
||||||
padding-bottom: var(--space-between-block);
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
padding-bottom: var(--space-between-block);
|
||||||
|
|
||||||
&__top {
|
&__top {
|
||||||
padding-bottom: 80px;
|
|
||||||
margin-bottom: 80px;
|
margin-bottom: 80px;
|
||||||
|
padding-bottom: 80px;
|
||||||
border-bottom: 1px solid var(--color-white-opacity);
|
border-bottom: 1px solid var(--color-white-opacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__question {
|
&__question {
|
||||||
|
@mixin responsive-xs {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
gap: 10px;
|
|
||||||
@mixin responsive-xs {
|
|
||||||
align-items: flex-start;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-button {
|
&-button {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
|
|
@ -25,27 +26,30 @@
|
||||||
|
|
||||||
&__bottom {
|
&__bottom {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__menu {
|
&__menu {
|
||||||
display: grid;
|
|
||||||
grid-template-columns: var(--space-between-sections) var(--space-between-sections);
|
|
||||||
grid-template-rows: fit-content fit-content;
|
|
||||||
grid-column-gap: var(--space-between-sections);
|
|
||||||
grid-row-gap: var(--space-between-block);
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
width: 100%;
|
|
||||||
grid-row-gap: 10px;
|
grid-row-gap: 10px;
|
||||||
grid-template-rows: min-content;
|
|
||||||
grid-template-columns: min-content min-content min-content;
|
grid-template-columns: min-content min-content min-content;
|
||||||
|
grid-template-rows: min-content;
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
margin-bottom: var(--space-between-block);
|
margin-bottom: var(--space-between-block);
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: grid;
|
||||||
|
grid-gap: var(--space-between-block) var(--space-between-sections);
|
||||||
|
grid-template-columns: var(--space-between-sections) var(--space-between-sections);
|
||||||
|
grid-template-rows: fit-content fit-content;
|
||||||
|
|
||||||
&-item {
|
&-item {
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
@ -58,24 +62,26 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&__social {
|
&__social {
|
||||||
|
@mixin responsive-m {
|
||||||
|
grid-row-gap: 10px;
|
||||||
|
margin-bottom: var(--space-between-block);
|
||||||
|
}
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: var(--space-between-block);
|
gap: var(--space-between-block);
|
||||||
@mixin responsive-m {
|
|
||||||
margin-bottom: var(--space-between-block);
|
|
||||||
grid-row-gap: 10px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&__connection {
|
&__connection {
|
||||||
|
@mixin responsive-m {
|
||||||
|
align-items: flex-start;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
gap: 1rem;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
gap: 1rem;
|
|
||||||
@mixin responsive-m {
|
|
||||||
width: 100%;
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,25 @@
|
||||||
.header {
|
.header {
|
||||||
position: sticky;
|
|
||||||
top: -30px;
|
|
||||||
z-index: 11;
|
|
||||||
width: 100%;
|
|
||||||
backdrop-filter: blur(100px);
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__wrapper {
|
position: sticky;
|
||||||
padding: 40px 20px 10px;
|
z-index: 11;
|
||||||
|
top: -30px;
|
||||||
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
backdrop-filter: blur(100px);
|
||||||
|
|
||||||
|
&__wrapper {
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
padding: 40px 20px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__logo {
|
&__logo {
|
||||||
|
|
@ -25,59 +29,66 @@
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
|
||||||
&.m--menu {
|
&.m--menu {
|
||||||
display: none;
|
|
||||||
margin-bottom: var(--space-between-block);
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: none;
|
||||||
|
margin-bottom: var(--space-between-block);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__menu {
|
&__menu {
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
transition: transform .3s ease;
|
|
||||||
@mixin responsive-xl {
|
@mixin responsive-xl {
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
z-index: 10;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
transform: translateX(-100%);
|
||||||
|
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: start;
|
align-items: start;
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 320px;
|
width: 320px;
|
||||||
bottom: 0;
|
|
||||||
min-height: calc(100vh + 30px);
|
min-height: calc(100vh + 30px);
|
||||||
transform: translateX(-100%);
|
|
||||||
background: var(--color-black);
|
|
||||||
padding: 40px 20px 0;
|
padding: 40px 20px 0;
|
||||||
z-index: 10;
|
|
||||||
|
background: var(--color-black);
|
||||||
|
|
||||||
&.m--active {
|
&.m--active {
|
||||||
transform: translateX(0);
|
transform: translateX(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
transition: transform 0.3s ease;
|
||||||
|
|
||||||
&-item {
|
&-item {
|
||||||
margin: 0 25px;
|
|
||||||
|
|
||||||
&.m--tools {
|
|
||||||
margin: 0 10px 0 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin responsive-xl {
|
@mixin responsive-xl {
|
||||||
margin: 0 10px;
|
margin: 0 10px;
|
||||||
|
|
||||||
&.m--tools {
|
&.m--tools {
|
||||||
margin: 0 5px 0 10px;
|
margin: 0 5px 0 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@mixin responsive-l {
|
|
||||||
|
|
||||||
|
@mixin responsive-l {
|
||||||
|
}
|
||||||
|
|
||||||
|
margin: 0 25px;
|
||||||
|
|
||||||
|
&.m--tools {
|
||||||
|
margin: 0 10px 0 25px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,18 +97,21 @@
|
||||||
|
|
||||||
&.is-subactive {
|
&.is-subactive {
|
||||||
color: transparent;
|
color: transparent;
|
||||||
-webkit-background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-icon {
|
&-icon {
|
||||||
background: none;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
border: none;
|
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
|
||||||
transition: all .3s ease;
|
background: none;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
&.m--profile {
|
&.m--profile {
|
||||||
background: svg-load('./assets/img/icon/user-icon.svg', stroke=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/user-icon.svg', stroke=$color-primary) no-repeat 100%;
|
||||||
|
|
@ -125,62 +139,66 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&__burger {
|
&__burger {
|
||||||
width: 38px;
|
|
||||||
height: 24px;
|
|
||||||
position: relative;
|
|
||||||
display: none;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.m--menu {
|
|
||||||
position: absolute;
|
|
||||||
right: 15px;
|
|
||||||
top: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.m--active {
|
|
||||||
span {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
transform: rotate(45deg);
|
|
||||||
bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:before {
|
|
||||||
transform: rotate(-45deg);
|
|
||||||
top: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after, &:before, span {
|
position: relative;
|
||||||
|
display: none;
|
||||||
|
width: 38px;
|
||||||
|
height: 24px;
|
||||||
|
|
||||||
|
&::after,
|
||||||
|
&::before,
|
||||||
|
span {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
|
|
||||||
background: var(--color-white);
|
background: var(--color-white);
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
|
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:before {
|
&::before {
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.m--menu {
|
||||||
|
position: absolute;
|
||||||
|
top: 15px;
|
||||||
|
right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.m--active {
|
||||||
|
&::after {
|
||||||
|
bottom: 10px;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
top: 10px;
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
top: 10px;
|
top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
|
||||||
bottom: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -3,36 +3,40 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
padding-bottom: 100px;
|
padding-bottom: 100px;
|
||||||
&:after{
|
|
||||||
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
background: url("./assets/img/bg/bg.svg");
|
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
inset: 0;
|
||||||
|
|
||||||
|
background: url('./assets/img/bg/bg.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
&__block {
|
&__block {
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__overlay {
|
&__overlay {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
|
inset: 0;
|
||||||
|
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background: var(--color-black-cc);
|
background: var(--color-black-cc);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__content {
|
&__content {
|
||||||
max-width: var(--container);
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 0 50px;
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
max-width: var(--container);
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0 50px;
|
||||||
|
|
||||||
.m--indentation {
|
.m--indentation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,77 +3,94 @@
|
||||||
|
|
||||||
&__header {
|
&__header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
|
||||||
align-items: start;
|
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
margin-bottom: var(--space-between-block);
|
|
||||||
row-gap: var(--space-between-block);
|
row-gap: var(--space-between-block);
|
||||||
|
align-items: start;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
margin-bottom: var(--space-between-block);
|
||||||
|
|
||||||
&-title {
|
&-title {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-btn {
|
&-btn {
|
||||||
margin-left: auto;
|
|
||||||
@mixin responsive-xxs {
|
@mixin responsive-xxs {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__content {
|
&__content {
|
||||||
display: flex;
|
|
||||||
gap: 80px;
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
gap: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__cover {
|
&__cover {
|
||||||
width: 100%;
|
|
||||||
max-height: 640px;
|
|
||||||
background: url("./assets/img/bg/blog.svg") no-repeat center;
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
background-size: cover;
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
height: calc(var(--base-content-size) / 2);
|
height: calc(var(--base-content-size) / 2);
|
||||||
max-height: none;
|
max-height: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
max-height: 640px;
|
||||||
|
|
||||||
|
background: url('./assets/img/bg/blog.svg') no-repeat center;
|
||||||
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__list {
|
&__list {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
border-bottom: 1px solid var(--color-white-opacity);
|
|
||||||
color: var(--color-white-opacity);
|
|
||||||
padding: 2rem 0;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
transition: all .3s ease;
|
|
||||||
|
|
||||||
&:after, &:before {
|
padding: 2rem 0;
|
||||||
position: absolute;
|
|
||||||
|
color: var(--color-white-opacity);
|
||||||
|
|
||||||
|
border-bottom: 1px solid var(--color-white-opacity);
|
||||||
|
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
|
&::after,
|
||||||
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
left: 0;
|
|
||||||
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
background: var(--color-white-opacity);
|
left: 0;
|
||||||
height: 1px;
|
|
||||||
display: none;
|
display: none;
|
||||||
transition: background .3s ease;
|
|
||||||
|
height: 1px;
|
||||||
|
|
||||||
|
background: var(--color-white-opacity);
|
||||||
|
|
||||||
|
transition: background 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:before {
|
&::before {
|
||||||
top: -1px;
|
top: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
display: block;
|
|
||||||
bottom: -1px;
|
bottom: -1px;
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
&:before {
|
&::before {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -81,33 +98,34 @@
|
||||||
&:hover {
|
&:hover {
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
|
|
||||||
&:after, &:before {
|
&::after,
|
||||||
|
&::before {
|
||||||
display: block;
|
display: block;
|
||||||
background: var(--linear-gradient);
|
background: var(--linear-gradient);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover &-btn {
|
&:hover &-btn {
|
||||||
&:before {
|
&::before {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-header {
|
&-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-title {
|
&-title {
|
||||||
font-size: 2rem;
|
|
||||||
width: calc(100% - 56px - 1rem);
|
width: calc(100% - 56px - 1rem);
|
||||||
margin-bottom: 2rem;
|
margin-bottom: 2rem;
|
||||||
|
font-size: 2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,18 +4,24 @@
|
||||||
gap: var(--space-between-block);
|
gap: var(--space-between-block);
|
||||||
margin-bottom: var(--space-between-sections);
|
margin-bottom: var(--space-between-sections);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__info {
|
&__info {
|
||||||
&:before {
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
display: block;
|
|
||||||
height: 50px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
|
display: block;
|
||||||
|
|
||||||
width: 50px;
|
width: 50px;
|
||||||
background: url("./assets/img/icon/one-circle.svg") no-repeat center;
|
height: 50px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
background: url('./assets/img/icon/one-circle.svg') no-repeat center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
@ -24,42 +30,55 @@
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__social {
|
&__social {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
&.m--telegram, &.m--vk{
|
|
||||||
|
&.m--telegram,
|
||||||
|
&.m--vk {
|
||||||
width: 25px;
|
width: 25px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--telegram {
|
&.m--telegram {
|
||||||
background: url("./assets/img/icon/telegram.svg") no-repeat;
|
background: url('./assets/img/icon/telegram.svg') no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--vk {
|
&.m--vk {
|
||||||
background: url("./assets/img/icon/vk.svg") no-repeat;
|
background: url('./assets/img/icon/vk.svg') no-repeat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__map {
|
&__map {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
|
|
||||||
&-frame {
|
&-frame {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__form {
|
&__form {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
max-width: 360px;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
&:before {
|
max-width: 360px;
|
||||||
|
|
||||||
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
display: block;
|
|
||||||
height: 50px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
|
display: block;
|
||||||
|
|
||||||
width: 100px;
|
width: 100px;
|
||||||
background: url("./assets/img/icon/two-circle.svg") no-repeat center;
|
height: 50px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
background: url('./assets/img/icon/two-circle.svg') no-repeat center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,18 @@
|
||||||
.field {
|
.field {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding-bottom: 28px;
|
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
|
padding-bottom: 28px;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
|
|
||||||
&&.m--100 {
|
&&.m--100 {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
&__inner {
|
&__inner {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
@ -18,7 +20,6 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
&__label {
|
&__label {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
@ -26,92 +27,121 @@
|
||||||
.input {
|
.input {
|
||||||
@mixin input;
|
@mixin input;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__input {
|
&__input {
|
||||||
&.m--search {
|
&.m--search {
|
||||||
position: relative;
|
position: relative;
|
||||||
&:before{
|
|
||||||
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
position: absolute;
|
||||||
top: 16px;
|
top: 16px;
|
||||||
left: 16px;
|
left: 16px;
|
||||||
position: absolute;
|
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/search-icon.svg') no-repeat 100%;
|
background: svg-load('./assets/img/icon/search-icon.svg') no-repeat 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input {
|
.input {
|
||||||
padding: 1rem 1.2rem 1rem 3rem;
|
padding: 1rem 1.2rem 1rem 3rem;
|
||||||
border: 1px solid var(--color-primary);
|
border: 1px solid var(--color-primary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--hidden {
|
&.m--hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__checkbox {
|
&__checkbox {
|
||||||
&-label {
|
&-label {
|
||||||
padding-left: 50px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
padding-left: 50px;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
color: var(--color-white-opacity);
|
color: var(--color-white-opacity);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
}
|
}
|
||||||
&:before{
|
|
||||||
content: "";
|
&::before {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
content: '';
|
||||||
|
user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
text-indent: -9999px;
|
|
||||||
|
display: block;
|
||||||
|
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
|
|
||||||
|
text-indent: -9999px;
|
||||||
|
|
||||||
background: var(--color-white-opacity);
|
background: var(--color-white-opacity);
|
||||||
display: block;
|
|
||||||
border-radius: 100px;
|
border-radius: 100px;
|
||||||
transition: all .3s ease;
|
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
-webkit-tap-highlight-color: transparent;
|
-webkit-tap-highlight-color: transparent;
|
||||||
-webkit-touch-callout: none;
|
-webkit-touch-callout: none;
|
||||||
-webkit-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
}
|
}
|
||||||
&:after{
|
|
||||||
content: "";
|
&::after {
|
||||||
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 3px;
|
top: 3px;
|
||||||
left: 3px;
|
left: 3px;
|
||||||
|
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
|
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 90px;
|
border-radius: 90px;
|
||||||
transition: all .3s ease;
|
|
||||||
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-input {
|
&-input {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-input:checked + &-label {
|
&-input:checked + &-label {
|
||||||
&:before{
|
&::before {
|
||||||
background: var(--color-primary);
|
background: var(--color-primary);
|
||||||
}
|
}
|
||||||
&:after{
|
|
||||||
|
&::after {
|
||||||
left: 37px;
|
left: 37px;
|
||||||
transform: translateX(-100%);
|
transform: translateX(-100%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
border-radius: 30px !important;
|
|
||||||
resize: none;
|
resize: none;
|
||||||
min-height: 80px;
|
|
||||||
scrollbar-color: var(--color-black) var(--color-white-opacity);
|
scrollbar-color: var(--color-black) var(--color-white-opacity);
|
||||||
scrollbar-gutter: stable;
|
|
||||||
scrollbar-width: thin;
|
scrollbar-width: thin;
|
||||||
|
scrollbar-gutter: stable;
|
||||||
scroll-margin-right: 20px;
|
scroll-margin-right: 20px;
|
||||||
|
|
||||||
|
min-height: 80px;
|
||||||
|
|
||||||
|
border-radius: 30px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__comment {
|
&__comment {
|
||||||
font-size: 1rem;
|
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,276 +1,335 @@
|
||||||
.home {
|
.home {
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
|
|
||||||
&__meaning {
|
&__meaning {
|
||||||
min-height: var(--base-content-size);
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
min-height: var(--base-content-size);
|
||||||
&:after, &:before {
|
|
||||||
|
&::after,
|
||||||
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background: url("./assets/img/icon/ellipseGradient.svg") no-repeat 50% 60%;
|
|
||||||
background-size: 100%;
|
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
|
||||||
|
background: url('./assets/img/icon/ellipseGradient.svg') no-repeat 50% 60%;
|
||||||
|
background-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
right: 50vh;
|
right: 50vh;
|
||||||
bottom: 10vh;
|
bottom: 10vh;
|
||||||
|
|
||||||
width: 300px;
|
width: 300px;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
|
|
||||||
animation: moving-circle-2 9s infinite linear;
|
animation: moving-circle-2 9s infinite linear;
|
||||||
|
|
||||||
@keyframes moving-circle-2 {
|
@keyframes moving-circle-2 {
|
||||||
0% {
|
0% {
|
||||||
-webkit-transform: rotate(360deg) translatex(100%) translatey(100%) scale(1.5);
|
transform: rotate(360deg) translateX(100%) translateY(100%) scale(1.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
-webkit-transform: rotate(0deg) translatex(100%) translatey(100%) scale(1.5);
|
transform: rotate(0deg) translateX(100%) translateY(100%) scale(1.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:before {
|
&::before {
|
||||||
|
bottom: 10vh;
|
||||||
|
left: 10vh;
|
||||||
|
|
||||||
width: 250px;
|
width: 250px;
|
||||||
height: 250px;
|
height: 250px;
|
||||||
left: 10vh;
|
|
||||||
bottom: 10vh;
|
|
||||||
animation: moving-circle-3 8s infinite linear;
|
animation: moving-circle-3 8s infinite linear;
|
||||||
|
|
||||||
@keyframes moving-circle-3 {
|
@keyframes moving-circle-3 {
|
||||||
0% {
|
0% {
|
||||||
-webkit-transform: rotate(360deg) translatex(-100%) translatey(150%) scale(1.5);
|
transform: rotate(360deg) translateX(-100%) translateY(150%) scale(1.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
-webkit-transform:rotate(0deg) translatex(-100%) translatey(200%) scale(1.5);
|
transform: rotate(0deg) translateX(-100%) translateY(200%) scale(1.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__subtitle {
|
&__subtitle {
|
||||||
text-align: center;
|
|
||||||
max-width: 600px;
|
|
||||||
margin: 0 auto;
|
|
||||||
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
}
|
}
|
||||||
span {
|
|
||||||
font-weight: 700;
|
max-width: 600px;
|
||||||
}
|
margin: 0 auto;
|
||||||
&:after{
|
text-align: center;
|
||||||
|
|
||||||
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
z-index: -1;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|
||||||
width: 400px;
|
width: 400px;
|
||||||
height: 400px;
|
height: 400px;
|
||||||
background: url("./assets/img/icon/ellipseGradient.svg") no-repeat 50% 60%;
|
|
||||||
|
background: url('./assets/img/icon/ellipseGradient.svg') no-repeat 50% 60%;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
|
|
||||||
animation: moving-circle 10s infinite linear;
|
animation: moving-circle 10s infinite linear;
|
||||||
z-index: -1;
|
|
||||||
@keyframes moving-circle {
|
@keyframes moving-circle {
|
||||||
0% {
|
0% {
|
||||||
-webkit-transform: rotate(0) translatex(-400px) translatey(-100px) scale(1.5);
|
transform: rotate(0) translateX(-400px) translateY(-100px) scale(1.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
-webkit-transform: rotate(180deg) translatex(-200px) translatey(-200px) scale(1);
|
transform: rotate(180deg) translateX(-200px) translateY(-200px) scale(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
-webkit-transform: rotate(360deg) translatex(-400px) translatey(-100px) scale(1.5);
|
transform: rotate(360deg) translateX(-400px) translateY(-100px) scale(1.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
@mixin h1;
|
@mixin h1;
|
||||||
-webkit-background-clip: text;
|
|
||||||
text-align: center;
|
|
||||||
background-clip: text;
|
|
||||||
background-image: linear-gradient(91.17deg, var(--color-white) -4.01%, var(--color-white) 36.14%, var(--color-white) 77.44%, var(--color-white) 106.11%);
|
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
|
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
background-image: linear-gradient(
|
||||||
|
91.17deg,
|
||||||
|
var(--color-white) -4.01%,
|
||||||
|
var(--color-white) 36.14%,
|
||||||
|
var(--color-white) 77.44%,
|
||||||
|
var(--color-white) 106.11%
|
||||||
|
);
|
||||||
|
background-clip: text;
|
||||||
|
background-clip: text;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
color: var(--color-black);
|
color: var(--color-black);
|
||||||
-webkit-background-clip: text;
|
background-clip: text;
|
||||||
|
|
||||||
-webkit-text-stroke: 3px transparent;
|
-webkit-text-stroke: 3px transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__banner {
|
&__banner {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
top: 0;
|
inset: 0;
|
||||||
left: 0;
|
scale: 0.8;
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background: url("./assets/img/bg/home-banner.png") no-repeat center;
|
|
||||||
width: 1920px;
|
width: 1920px;
|
||||||
max-height: var(--base-content-size);
|
max-height: var(--base-content-size);
|
||||||
background-size: contain;
|
|
||||||
scale: 0.8;
|
|
||||||
margin-left: calc((100vw + -1 * 1920px) / 2);
|
margin-left: calc((100vw + -1 * 1920px) / 2);
|
||||||
|
|
||||||
|
background: url('./assets/img/bg/home-banner.png') no-repeat center;
|
||||||
|
background-size: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__description {
|
&__description {
|
||||||
margin-top: calc(var(--space-between-sections) / 2);
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
margin-bottom: var(--space-between-sections);
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
gap: var(--space-between-block);
|
gap: var(--space-between-block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
margin-top: calc(var(--space-between-sections) / 2);
|
||||||
|
margin-bottom: var(--space-between-sections);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__info {
|
&__info {
|
||||||
width: 60%;
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
width: 60%;
|
||||||
|
|
||||||
&--item {
|
&--item {
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
color: transparent;
|
||||||
|
|
||||||
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
|
|
||||||
&.m--circle {
|
&.m--circle {
|
||||||
align-items: end;
|
align-items: end;
|
||||||
|
|
||||||
&:before {
|
&::before {
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
width: 130px;
|
|
||||||
height: 130px;
|
|
||||||
background: url("./assets/img/icon/circleGradient.svg") no-repeat center;
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
margin-right: auto;
|
|
||||||
width: 80px;
|
width: 80px;
|
||||||
height: 80px;
|
height: 80px;
|
||||||
|
margin-right: auto;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
content: '';
|
||||||
|
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
width: 130px;
|
||||||
|
height: 130px;
|
||||||
|
|
||||||
|
background: url('./assets/img/icon/circleGradient.svg') no-repeat center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-weight: 400;
|
|
||||||
color: var(--color-white);
|
|
||||||
width: 57%;
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
width: 75%;
|
width: 75%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
width: 57%;
|
||||||
|
font-weight: 400;
|
||||||
|
color: var(--color-white);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__content {
|
&__content {
|
||||||
max-width: 360px;
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-start;
|
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: calc(var(--space-between-block) / 2);
|
gap: calc(var(--space-between-block) / 2);
|
||||||
|
align-items: flex-start;
|
||||||
|
|
||||||
max-width: none;
|
max-width: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
max-width: 360px;
|
||||||
|
|
||||||
&--item {
|
&--item {
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: flex-start;
|
|
||||||
font-size: 16px;
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
&:not(&:last-child){
|
|
||||||
margin-bottom: var(--space-between-block);
|
|
||||||
}
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
width: calc((100% - var(--space-between-block)) / 3);
|
width: calc((100% - var(--space-between-block)) / 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
&:before {
|
|
||||||
content: '';
|
|
||||||
height: 50px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
|
||||||
|
font-size: 16px;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
|
height: 50px;
|
||||||
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--one-circle:before {
|
&:not(&:last-child) {
|
||||||
|
margin-bottom: var(--space-between-block);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.m--one-circle::before {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
background: url("./assets/img/icon/one-circle.svg") no-repeat center;
|
background: url('./assets/img/icon/one-circle.svg') no-repeat center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--two-circle:before {
|
&.m--two-circle::before {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
background: url("./assets/img/icon/two-circle.svg") no-repeat center;
|
background: url('./assets/img/icon/two-circle.svg') no-repeat center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--three-circle:before {
|
&.m--three-circle::before {
|
||||||
width: 150px;
|
width: 150px;
|
||||||
background: url("./assets/img/icon/three-circle.svg") no-repeat center;
|
background: url('./assets/img/icon/three-circle.svg') no-repeat center;
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
color: transparent;
|
color: transparent;
|
||||||
background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__social {
|
&__social {
|
||||||
height: var(--base-content-size);
|
position: relative;
|
||||||
max-height: 900px;
|
z-index: 2;
|
||||||
background: url("./assets/img/bg/bg-social.svg") no-repeat center;
|
|
||||||
padding: 3rem 2.5rem;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
height: var(--base-content-size);
|
||||||
|
max-height: 900px;
|
||||||
margin-bottom: var(--space-between-sections);
|
margin-bottom: var(--space-between-sections);
|
||||||
|
padding: 3rem 2.5rem;
|
||||||
|
|
||||||
|
background: url('./assets/img/bg/bg-social.svg') no-repeat center;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
&:after {
|
|
||||||
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
inset: 0;
|
||||||
bottom: 0;
|
background: linear-gradient(179.74deg, rgb(0 0 0 / 0%) 0.23%, rgb(0 0 0 / 66%) 99.77%);
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
background: linear-gradient(179.74deg, rgba(0, 0, 0, 0) 0.23%, rgba(0, 0, 0, 0.66) 99.77%);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&--tools {
|
&--tools {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
|
||||||
align-items: flex-end;
|
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
row-gap: var(--space-between-block);
|
row-gap: var(--space-between-block);
|
||||||
|
align-items: flex-end;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
&--description {
|
&--description {
|
||||||
max-width: 45%;
|
|
||||||
@mixin responsive-xs {
|
@mixin responsive-xs {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
max-width: 45%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&--btns {
|
&--btns {
|
||||||
display: grid;
|
display: grid;
|
||||||
|
grid-gap: 8px;
|
||||||
grid-template-columns: min-content min-content;
|
grid-template-columns: min-content min-content;
|
||||||
grid-template-rows: min-content min-content;
|
grid-template-rows: min-content min-content;
|
||||||
grid-column-gap: 8px;
|
|
||||||
grid-row-gap: 8px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,63 +1,83 @@
|
||||||
.loader {
|
.loader {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
gap: 1rem;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
margin: 0.75rem 0;
|
||||||
|
|
||||||
font-size: 1.25rem;
|
font-size: 1.25rem;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: transparent;
|
color: transparent;
|
||||||
background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
background-image: var(--linear-gradient);
|
||||||
margin: 0.75rem 0;
|
background-clip: text;
|
||||||
gap: 1rem;
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
.spinner {
|
.spinner {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 48px;
|
height: 48px;
|
||||||
|
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
position: relative;
|
|
||||||
animation: rotate 1s linear infinite;
|
animation: rotate 1s linear infinite;
|
||||||
|
|
||||||
&:before, &:after {
|
&::before,
|
||||||
content: "";
|
&::after {
|
||||||
box-sizing: border-box;
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
inset: 0px;
|
inset: 0;
|
||||||
border-radius: 50%;
|
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
border: 5px solid var(--color-primary);
|
border: 5px solid var(--color-primary);
|
||||||
|
border-radius: 50%;
|
||||||
|
|
||||||
animation: prixClipFix 5s linear infinite;
|
animation: prixClipFix 5s linear infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
border-color: var(--color-white);
|
|
||||||
animation: prixClipFix 5s linear infinite, rotate 0.5s linear infinite reverse;
|
|
||||||
inset: 6px;
|
inset: 6px;
|
||||||
|
border-color: var(--color-white);
|
||||||
|
animation:
|
||||||
|
prixClipFix 5s linear infinite,
|
||||||
|
rotate 0.5s linear infinite reverse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes rotate {
|
@keyframes rotate {
|
||||||
0% {
|
0% {
|
||||||
transform: rotate(0deg)
|
transform: rotate(0deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
transform: rotate(360deg)
|
transform: rotate(360deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes prixClipFix {
|
@keyframes prixClipFix {
|
||||||
0% {
|
0% {
|
||||||
clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0)
|
clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
25% {
|
25% {
|
||||||
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0)
|
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%)
|
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
75% {
|
75% {
|
||||||
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%)
|
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0)
|
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,38 +1,45 @@
|
||||||
.modal {
|
.modal {
|
||||||
&__container {
|
&__container {
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
.vfm__overlay {
|
.vfm__overlay {
|
||||||
background: var(--bg-wrapper-modal);
|
background: var(--bg-wrapper-modal);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--right {
|
&.m--right {
|
||||||
justify-content: flex-end;
|
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__container.m--right &__block {
|
&__container.m--right &__block {
|
||||||
margin: 0;
|
|
||||||
max-height: none;
|
max-height: none;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__block {
|
&__block {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin: 0 1.5rem;
|
|
||||||
padding: 2.5rem;
|
min-width: 360px;
|
||||||
background: var(--color-black);
|
max-width: 90vw;
|
||||||
min-height: 96px;
|
min-height: 96px;
|
||||||
max-height: 90vh;
|
max-height: 90vh;
|
||||||
max-width: 90vw;
|
margin: 0 1.5rem;
|
||||||
min-width: 360px;
|
padding: 2.5rem;
|
||||||
|
|
||||||
|
background: var(--color-black);
|
||||||
|
|
||||||
&.m--half {
|
&.m--half {
|
||||||
max-width: 950px;
|
|
||||||
width: 50%;
|
width: 50%;
|
||||||
|
max-width: 950px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--long {
|
&.m--long {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-width: 950px;
|
max-width: 950px;
|
||||||
|
|
@ -48,41 +55,56 @@
|
||||||
max-width: 420px;
|
max-width: 420px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__content {
|
&__content {
|
||||||
min-width: 360px;
|
min-width: 360px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
font-size: 2rem;
|
|
||||||
margin-bottom: 2.5rem;
|
margin-bottom: 2.5rem;
|
||||||
|
font-size: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__close {
|
&__close {
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 5px;
|
top: 5px;
|
||||||
right: 5px;
|
right: 5px;
|
||||||
background: transparent;
|
|
||||||
border: none;
|
width: 30px;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
|
height: 30px;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
&:after,&:before{
|
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
&::after,
|
||||||
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background: var(--color-white);
|
|
||||||
left: 5px;
|
|
||||||
right: 5px;
|
right: 5px;
|
||||||
|
left: 5px;
|
||||||
|
|
||||||
height: 2px;
|
height: 2px;
|
||||||
|
|
||||||
|
background: var(--color-white);
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
transition: all .3s ease;
|
|
||||||
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
&:after{
|
|
||||||
|
&::after {
|
||||||
transform: rotate(45deg);
|
transform: rotate(45deg);
|
||||||
}
|
}
|
||||||
&:before{
|
|
||||||
|
&::before {
|
||||||
transform: rotate(-45deg);
|
transform: rotate(-45deg);
|
||||||
}
|
}
|
||||||
&:hover:after, &:hover:before{
|
|
||||||
|
&:hover::after,
|
||||||
|
&:hover::before {
|
||||||
background: var(--color-black);
|
background: var(--color-black);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,52 +3,58 @@
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-top: var(--space-between-block);
|
margin-top: var(--space-between-block);
|
||||||
margin-bottom: var(--space-between-sections);
|
margin-bottom: var(--space-between-sections);
|
||||||
|
|
||||||
&__list {
|
&__list {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
margin: 0 5px;
|
margin: 0 5px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&__link {
|
&__link {
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
|
|
||||||
&.m--current {
|
&.m--current {
|
||||||
color: transparent;
|
color: transparent;
|
||||||
-webkit-background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__btn {
|
&__btn {
|
||||||
min-height: 25px;
|
|
||||||
min-width: 25px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
min-width: 25px;
|
||||||
|
min-height: 25px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
&:after {
|
|
||||||
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
inset: 0;
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: var(--color-white);
|
background: var(--color-white);
|
||||||
}
|
}
|
||||||
&.m--prev:after {
|
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
&.m--prev::after {
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
}
|
|
||||||
&.m--prev:hover:after{
|
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#232323) no-repeat 100%;
|
|
||||||
}
|
|
||||||
&.m--next:after {
|
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
||||||
}
|
}
|
||||||
&.m--next:hover:after{
|
|
||||||
|
&.m--prev:hover::after {
|
||||||
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#232323) no-repeat 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.m--next::after {
|
||||||
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#FFFF) no-repeat 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.m--next:hover::after {
|
||||||
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#232323) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ArrowRight.svg', stroke=#232323) no-repeat 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,17 @@
|
||||||
.player {
|
.player {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
z-index: 3;
|
||||||
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
|
||||||
backdrop-filter: blur(100px);
|
|
||||||
z-index: 3;
|
|
||||||
padding: 10px var(--space-between-block);
|
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: var(--space-between-block);
|
gap: var(--space-between-block);
|
||||||
|
|
||||||
|
padding: 10px var(--space-between-block);
|
||||||
|
|
||||||
|
backdrop-filter: blur(100px);
|
||||||
|
|
||||||
//display: none;
|
//display: none;
|
||||||
&__cover {
|
&__cover {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
|
|
@ -20,20 +24,24 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&__top {
|
&__top {
|
||||||
margin-bottom: 10px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__executor {
|
&__executor {
|
||||||
font-size: 1rem;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin-left: 20px;
|
|
||||||
gap: 0.25rem;
|
gap: 0.25rem;
|
||||||
|
|
||||||
|
margin-left: 20px;
|
||||||
|
|
||||||
|
font-size: 1rem;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
color: var(--color-white-opacity);
|
color: var(--color-white-opacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--skeleton {
|
&.m--skeleton {
|
||||||
min-width: 135px;
|
min-width: 135px;
|
||||||
}
|
}
|
||||||
|
|
@ -42,179 +50,204 @@
|
||||||
&__favorites {
|
&__favorites {
|
||||||
width: 27px;
|
width: 27px;
|
||||||
height: 27px;
|
height: 27px;
|
||||||
background: svg-load('./assets/img/icon/favorites.svg', fill=#404145FF)
|
|
||||||
no-repeat 100%;
|
|
||||||
margin-left: var(--space-between-block);
|
margin-left: var(--space-between-block);
|
||||||
|
background: svg-load('./assets/img/icon/favorites.svg', fill=#404145FF) no-repeat 100%;
|
||||||
|
|
||||||
&.m--skeleton {
|
&.m--skeleton {
|
||||||
background: none;
|
background: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--active {
|
&.m--active {
|
||||||
background: svg-load('./assets/img/icon/favorites.svg', fill=#FFF)
|
background: svg-load('./assets/img/icon/favorites.svg', fill=#FFF) no-repeat 100%;
|
||||||
no-repeat 100%;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__bottom {
|
&__bottom {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__time {
|
&__time {
|
||||||
font-size: 1rem;
|
|
||||||
color: var(--color-white-opacity);
|
|
||||||
font-weight: 500;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
min-width: 105px;
|
min-width: 105px;
|
||||||
|
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
color: var(--color-white-opacity);
|
||||||
|
|
||||||
&.m--ether {
|
&.m--ether {
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
animation: blink 1s infinite;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
border-radius: 50%;
|
|
||||||
left: 40px;
|
|
||||||
top: 0;
|
top: 0;
|
||||||
|
left: 40px;
|
||||||
|
|
||||||
width: 5px;
|
width: 5px;
|
||||||
height: 5px;
|
height: 5px;
|
||||||
|
|
||||||
background: var(--color-emmit);
|
background: var(--color-emmit);
|
||||||
|
border-radius: 50%;
|
||||||
|
|
||||||
|
animation: blink 1s infinite;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__tools {
|
&__tools {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: var(--space-between-block);
|
gap: var(--space-between-block);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
|
|
||||||
&.m--skeleton {
|
&.m--skeleton {
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__volume {
|
&__volume {
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
&-on {
|
&-on {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
background: svg-load('./assets/img/icon/volume.svg', fill=#FFFF) no-repeat
|
background: svg-load('./assets/img/icon/volume.svg', fill=#FFFF) no-repeat 100%;
|
||||||
100%;
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-off {
|
&-off {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
background: svg-load('./assets/img/icon/volume-off.svg', fill=#FFFF)
|
background: svg-load('./assets/img/icon/volume-off.svg', fill=#FFFF) no-repeat 100%;
|
||||||
no-repeat 100%;
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
position: relative;
|
position: relative;
|
||||||
appearance: none;
|
|
||||||
|
overflow: hidden;
|
||||||
|
display: block;
|
||||||
|
|
||||||
width: calc(100% - 34px);
|
width: calc(100% - 34px);
|
||||||
height: 5px;
|
height: 5px;
|
||||||
border-radius: 10px;
|
|
||||||
display: block;
|
|
||||||
background: var(--color-white-opacity);
|
|
||||||
overflow: hidden;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
|
appearance: none;
|
||||||
|
background: var(--color-white-opacity);
|
||||||
|
border-radius: 10px;
|
||||||
|
|
||||||
|
&::-webkit-slider-thumb,
|
||||||
|
&::-webkit-slider-thumb {
|
||||||
|
width: 1px;
|
||||||
|
height: 5px;
|
||||||
|
appearance: none;
|
||||||
|
box-shadow: -100vmax 0 0 100vmax var(--color-white);
|
||||||
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&::-webkit-slider-thumb,
|
|
||||||
&::-webkit-slider-thumb {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
width: 1px;
|
|
||||||
height: 5px;
|
|
||||||
box-shadow: -100vmax 0 0 100vmax var(--color-white);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&__progress {
|
&__progress {
|
||||||
flex: 1 1 auto;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
|
||||||
input {
|
input {
|
||||||
position: relative;
|
position: relative;
|
||||||
appearance: none;
|
|
||||||
|
overflow: hidden;
|
||||||
|
display: block;
|
||||||
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 5px;
|
height: 5px;
|
||||||
border-radius: 10px;
|
|
||||||
display: block;
|
|
||||||
background: var(--color-white-opacity);
|
|
||||||
margin-bottom: 20px;
|
|
||||||
overflow: hidden;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
&:hover {
|
appearance: none;
|
||||||
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
background: var(--color-white-opacity);
|
||||||
}
|
border-radius: 10px;
|
||||||
|
|
||||||
&::-webkit-slider-thumb,
|
&::-webkit-slider-thumb,
|
||||||
&::-webkit-slider-thumb {
|
&::-webkit-slider-thumb {
|
||||||
-webkit-appearance: none;
|
|
||||||
width: 1px;
|
width: 1px;
|
||||||
height: 5px;
|
height: 5px;
|
||||||
|
appearance: none;
|
||||||
box-shadow: -100vmax 0 0 100vmax var(--color-primary);
|
box-shadow: -100vmax 0 0 100vmax var(--color-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__btn {
|
&__btn {
|
||||||
min-height: 0;
|
|
||||||
min-width: 0;
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
border-radius: 50%;
|
|
||||||
border: none;
|
|
||||||
background: var(--color-primary);
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
width: 50px;
|
||||||
|
min-width: 0;
|
||||||
|
height: 50px;
|
||||||
|
min-height: 0;
|
||||||
|
|
||||||
|
background: var(--color-primary);
|
||||||
|
border: none;
|
||||||
|
border-radius: 50%;
|
||||||
|
|
||||||
&.m--play {
|
&.m--play {
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
background: svg-load('./assets/img/icon/play.svg', fill=#FFFF) no-repeat
|
|
||||||
100%;
|
background: svg-load('./assets/img/icon/play.svg', fill=#FFFF) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/play.svg', fill=$color-primary)
|
background: svg-load('./assets/img/icon/play.svg', fill=$color-primary) no-repeat 100%;
|
||||||
no-repeat 100%;
|
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--pause {
|
&.m--pause {
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
background: svg-load('./assets/img/icon/pause.svg', fill=#FFFF)
|
|
||||||
no-repeat 100%;
|
background: svg-load('./assets/img/icon/pause.svg', fill=#FFFF) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/pause.svg', fill=$color-primary)
|
background: svg-load('./assets/img/icon/pause.svg', fill=$color-primary) no-repeat 100%;
|
||||||
no-repeat 100%;
|
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -229,6 +262,7 @@
|
||||||
from {
|
from {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,87 +1,117 @@
|
||||||
.playlist {
|
.playlist {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
&__header {
|
&__header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
|
||||||
gap: calc(var(--space-between-block) / 2);
|
gap: calc(var(--space-between-block) / 2);
|
||||||
|
align-items: center;
|
||||||
margin-bottom: var(--space-between-block);
|
margin-bottom: var(--space-between-block);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
font-size: 32px;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
font-size: 32px;
|
||||||
|
|
||||||
&.m--margin {
|
&.m--margin {
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__back {
|
&__back {
|
||||||
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
|
|
||||||
width: 30px;
|
width: 30px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/arrow-right.svg', stroke=$color-white) no-repeat 100%;
|
background: svg-load('./assets/img/icon/arrow-right.svg', stroke=$color-white) no-repeat 100%;
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
|
||||||
transition: all .3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: svg-load('./assets/img/icon/arrow-right.svg', stroke=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/arrow-right.svg', stroke=$color-primary) no-repeat 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__edit {
|
&__edit {
|
||||||
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
|
|
||||||
width: 30px;
|
width: 30px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/ellipsis.svg', fill=$color-white) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ellipsis.svg', fill=$color-white) no-repeat 100%;
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
|
||||||
transition: all .3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: svg-load('./assets/img/icon/ellipsis.svg', fill=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/ellipsis.svg', fill=$color-primary) no-repeat 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-roster {
|
&-roster {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: calc(var(--space-between-block) / 2);
|
gap: calc(var(--space-between-block) / 2);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-edit {
|
&-edit {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
&__search {
|
&__search {
|
||||||
margin-bottom: var(--space-between-block);
|
margin-bottom: var(--space-between-block);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__search {
|
&__search {
|
||||||
min-width: 320px;
|
|
||||||
width: 40%;
|
width: 40%;
|
||||||
|
min-width: 320px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__list {
|
&__list {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: var(--space-between-block);
|
gap: var(--space-between-block);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
width: calc(50% - var(--space-between-block) / 2);
|
width: calc(50% - var(--space-between-block) / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
color: transparent;
|
|
||||||
font-size: 2rem;
|
|
||||||
background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
}
|
|
||||||
&__upload{
|
font-size: 2rem;
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
|
||||||
border: none;
|
|
||||||
padding: 0;
|
|
||||||
background-clip: text;
|
|
||||||
color: transparent;
|
color: transparent;
|
||||||
background-image: var(--linear-gradient-highlight);
|
|
||||||
margin: 0 0 var(--space-between-block);
|
background-image: var(--linear-gradient);
|
||||||
transition: all .3s ease;
|
background-clip: text;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__upload {
|
||||||
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
&:before{
|
|
||||||
|
margin: 0 0 var(--space-between-block);
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
color: transparent;
|
||||||
|
|
||||||
|
background-image: var(--linear-gradient-highlight);
|
||||||
|
background-clip: text;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
width: 20px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
background: svg-load('./assets/img/icon/paper-clip.svg', fill=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/paper-clip.svg', fill=$color-primary) no-repeat 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
@ -89,45 +119,55 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&-item {
|
&-item {
|
||||||
z-index: 2;
|
cursor: url('./assets/img/icon/cursor.svg'), auto;
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
min-width: 220px;
|
min-width: 220px;
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
|
||||||
|
|
||||||
&__cover {
|
&__cover {
|
||||||
|
min-height: 220px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/playlist-item.svg', fill=$color-white) no-repeat 100%;
|
background: svg-load('./assets/img/icon/playlist-item.svg', fill=$color-white) no-repeat 100%;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-bottom: 10px;
|
|
||||||
transition: all .3s ease;
|
transition: all 0.3s ease;
|
||||||
min-height: 220px;
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
margin-bottom: 10px;
|
||||||
background: svg-load('./assets/img/icon/playlist-item.svg', fill=$color-white-opacity) no-repeat 100%;
|
background: svg-load('./assets/img/icon/playlist-item.svg', fill=$color-white-opacity) no-repeat 100%;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--create &__cover {
|
&.m--create &__cover {
|
||||||
position: relative;
|
position: relative;
|
||||||
background: var(--bg-opacity);
|
background: var(--bg-opacity);
|
||||||
&:after {
|
|
||||||
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
|
||||||
width: 63px;
|
width: 63px;
|
||||||
height: 63px;
|
height: 63px;
|
||||||
background: svg-load('./assets/img/icon/playlist-item-create.svg', fill=$color-white-opacity) no-repeat 100%;
|
|
||||||
transition: all .3s ease;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
|
background: svg-load('./assets/img/icon/playlist-item-create.svg', fill=$color-white-opacity) no-repeat 100%;
|
||||||
|
|
||||||
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: var(--color-primary);
|
background: var(--color-primary);
|
||||||
&:after{
|
|
||||||
|
&::after {
|
||||||
background: svg-load('./assets/img/icon/playlist-item-create.svg', fill=$color-white) no-repeat 100%;
|
background: svg-load('./assets/img/icon/playlist-item-create.svg', fill=$color-white) no-repeat 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,42 @@
|
||||||
.playlists {
|
.playlists {
|
||||||
&__content {
|
&__content {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&__list {
|
&__list {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
display: flex;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-bottom: 1rem;
|
|
||||||
align-items: center;
|
|
||||||
gap: 20px;
|
|
||||||
padding-top: 1rem;
|
|
||||||
|
|
||||||
&:after{
|
display: flex;
|
||||||
|
gap: 20px;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
padding-top: 1rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
content: '';
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
|
|
||||||
background: var(--linear-gradient);
|
background: var(--linear-gradient);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__time {
|
&__time {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__param {
|
&__param {
|
||||||
margin: 0;
|
|
||||||
width: 25%;
|
width: 25%;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
&.m--long {
|
&.m--long {
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__tabs {
|
&__tabs {
|
||||||
margin-top: var(--space-between-block);
|
margin-top: var(--space-between-block);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,110 +1,142 @@
|
||||||
.rubric {
|
.rubric {
|
||||||
&-block {
|
&-block {
|
||||||
margin-bottom: var(--space-between-sections);
|
margin-bottom: var(--space-between-sections);
|
||||||
|
|
||||||
&__header {
|
&__header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
|
||||||
align-items: start;
|
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
align-items: start;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
&-title{
|
&-title{
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__description{
|
&__description{
|
||||||
max-width: 60%;
|
|
||||||
margin-bottom: 2.5rem;
|
|
||||||
@mixin responsive-xxs {
|
@mixin responsive-xxs {
|
||||||
max-width: none;
|
max-width: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
max-width: 60%;
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
|
||||||
&.m--50{
|
&.m--50{
|
||||||
margin-bottom: 0;
|
|
||||||
max-width: 50%;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
max-width: 50%;
|
||||||
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__link{
|
&__link{
|
||||||
@mixin responsive-xxs {
|
@mixin responsive-xxs {
|
||||||
order: 1;
|
order: 1;
|
||||||
margin: var(--space-between-block) 0;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
margin: var(--space-between-block) 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__list{
|
&__list{
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
&:before{
|
|
||||||
|
&::before{
|
||||||
|
content: '';
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: absolute;
|
|
||||||
content: '';
|
|
||||||
background: url("./assets/img/bg/rubric-list.svg") no-repeat;
|
background: url("./assets/img/bg/rubric-list.svg") no-repeat;
|
||||||
background-position: 25%;
|
background-position: 25%;
|
||||||
background-size: 35%;
|
background-size: 35%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item{
|
&__item{
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
position: relative;
|
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
z-index: 2;
|
|
||||||
&:hover{
|
&:hover{
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
||||||
}
|
}
|
||||||
&:after{
|
|
||||||
|
&::after{
|
||||||
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
content: '';
|
|
||||||
background: #000;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
|
|
||||||
|
background: #000;
|
||||||
background: var(--linear-gradient);
|
background: var(--linear-gradient);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__title{
|
&__title{
|
||||||
transition: all .3s ease;
|
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
padding-right: 10px;
|
||||||
|
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
text-wrap: nowrap;
|
text-wrap: nowrap;
|
||||||
padding-right: 10px;
|
|
||||||
|
transition: all .3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__btn{
|
&__btn{
|
||||||
transition: all .35s ease, visibility .0s ease;
|
|
||||||
visibility: hidden;
|
|
||||||
text-wrap: nowrap;
|
|
||||||
min-width: 0;
|
|
||||||
width: 0;
|
width: 0;
|
||||||
|
min-width: 0;
|
||||||
|
|
||||||
|
text-wrap: nowrap;
|
||||||
|
|
||||||
|
visibility: hidden;
|
||||||
|
|
||||||
|
transition: all .35s ease, visibility .0s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item:hover &__btn{
|
&__item:hover &__btn{
|
||||||
visibility: visible;
|
|
||||||
min-width: 240px;
|
|
||||||
width: 240px;
|
width: 240px;
|
||||||
|
min-width: 240px;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item:hover &__title{
|
&__item:hover &__title{
|
||||||
color: transparent;
|
color: transparent;
|
||||||
background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-modal{
|
&-modal{
|
||||||
&__header{
|
&__header{
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__title{
|
&__title{
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__close{
|
&__close{
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__cover{
|
&__cover{
|
||||||
margin-bottom: 1.5rem;
|
margin-bottom: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__description{
|
&__description{
|
||||||
margin-bottom: 1.5rem;
|
margin-bottom: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,26 +4,34 @@
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 0 var(--space-between-block);
|
gap: 0 var(--space-between-block);
|
||||||
}
|
}
|
||||||
|
|
||||||
.m--column &-item{
|
.m--column &-item{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-item {
|
&-item {
|
||||||
width: calc(50% - var(--space-between-block) / 2);
|
|
||||||
position: relative;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
z-index: 2;
|
|
||||||
border-left: 3px solid transparent;
|
|
||||||
padding: 10px;
|
|
||||||
transition: border .5s ease, background .5s ease;
|
|
||||||
background: transparent;
|
|
||||||
@mixin responsive-m {
|
@mixin responsive-m {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
width: calc(50% - var(--space-between-block) / 2);
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
background: transparent;
|
||||||
|
border-left: 3px solid transparent;
|
||||||
|
|
||||||
|
transition: border .5s ease, background .5s ease;
|
||||||
|
|
||||||
&.m--select &__selected {
|
&.m--select &__selected {
|
||||||
margin-right: 20px;
|
|
||||||
width: 35px;
|
width: 35px;
|
||||||
height: 33px;
|
height: 33px;
|
||||||
|
margin-right: 20px;
|
||||||
|
|
||||||
&.m--stop {
|
&.m--stop {
|
||||||
path {
|
path {
|
||||||
|
|
@ -33,8 +41,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&__selected {
|
&__selected {
|
||||||
width: 0;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
width: 0;
|
||||||
transition: all .2s ease;
|
transition: all .2s ease;
|
||||||
|
|
||||||
path:nth-child(n) {
|
path:nth-child(n) {
|
||||||
|
|
@ -53,110 +61,133 @@
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
||||||
|
background: linear-gradient(90deg, rgb(255 255 255 / 20%) 0%, rgb(255 255 255 / 0%) 100%);
|
||||||
border-color: var(--color-primary);
|
border-color: var(--color-primary);
|
||||||
background: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&__btn {
|
&__btn {
|
||||||
min-height: 0;
|
|
||||||
min-width: 0;
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
border-radius: 50%;
|
|
||||||
border: none;
|
|
||||||
background: var(--color-primary);
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
width: 50px;
|
||||||
|
min-width: 0;
|
||||||
|
height: 50px;
|
||||||
|
min-height: 0;
|
||||||
|
|
||||||
|
background: var(--color-primary);
|
||||||
|
border: none;
|
||||||
|
border-radius: 50%;
|
||||||
|
|
||||||
&.m--small {
|
&.m--small {
|
||||||
background: transparent;
|
|
||||||
width: 25px;
|
width: 25px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--favorites {
|
&.m--favorites {
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 25px;
|
width: 25px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/favorites.svg', fill=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/favorites.svg', fill=$color-primary) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
|
|
||||||
transition: all .3s ease;
|
transition: all .3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/favorites.svg', fill=#FFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/favorites.svg', fill=#FFF) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--add {
|
&.m--add {
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 25px;
|
width: 25px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/add-icon.svg', fill=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/add-icon.svg', fill=$color-primary) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
|
|
||||||
transition: all .3s ease;
|
transition: all .3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/add-icon.svg', fill=#FFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/add-icon.svg', fill=#FFF) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--already{
|
&.m--already{
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 25px;
|
width: 25px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/icon-trash.svg', stroke=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/icon-trash.svg', stroke=$color-primary) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
|
|
||||||
transition: all .3s ease;
|
transition: all .3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/icon-trash.svg', stroke=#FFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/icon-trash.svg', stroke=#FFF) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--play {
|
&.m--play {
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/play.svg', fill=#FFFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/play.svg', fill=#FFFF) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
|
|
||||||
transition: all .3s ease;
|
transition: all .3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/play.svg', fill=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/play.svg', fill=$color-primary) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--pause {
|
&.m--pause {
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
background: svg-load('./assets/img/icon/pause.svg', fill=#FFFF) no-repeat 100%;
|
background: svg-load('./assets/img/icon/pause.svg', fill=#FFFF) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
|
|
||||||
transition: all .3s ease;
|
transition: all .3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover:after {
|
&:hover::after {
|
||||||
background: svg-load('./assets/img/icon/pause.svg', fill=$color-primary) no-repeat 100%;
|
background: svg-load('./assets/img/icon/pause.svg', fill=$color-primary) no-repeat 100%;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
|
|
@ -166,21 +197,23 @@
|
||||||
&__info {
|
&__info {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
font-size: 1rem;
|
|
||||||
color: var(--color-white-opacity);
|
|
||||||
line-height: 21px;
|
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
|
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 21px;
|
||||||
|
color: var(--color-white-opacity);
|
||||||
|
|
||||||
span {
|
span {
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__tools {
|
&__tools {
|
||||||
margin-left: auto;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -189,9 +222,11 @@
|
||||||
0% {
|
0% {
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
transform: translateY(50%);
|
transform: translateY(50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,38 +1,46 @@
|
||||||
.support{
|
.support{
|
||||||
&-block{
|
&-block{
|
||||||
margin-bottom: var(--space-between-sections);
|
margin-bottom: var(--space-between-sections);
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
width: calc(100% / 3);
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
font-size: 16px;
|
|
||||||
|
width: calc(100% / 3);
|
||||||
margin-bottom: 2.5rem;
|
margin-bottom: 2.5rem;
|
||||||
|
|
||||||
|
font-size: 16px;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
&:before {
|
|
||||||
content: '';
|
|
||||||
height: 50px;
|
height: 50px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--one-circle:before {
|
&.m--one-circle::before {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
background: url("./assets/img/icon/one-circle.svg") no-repeat center;
|
background: url("./assets/img/icon/one-circle.svg") no-repeat center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--two-circle:before {
|
&.m--two-circle::before {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
background: url("./assets/img/icon/two-circle.svg") no-repeat center;
|
background: url("./assets/img/icon/two-circle.svg") no-repeat center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.m--three-circle:before {
|
&.m--three-circle::before {
|
||||||
width: 150px;
|
width: 150px;
|
||||||
background: url("./assets/img/icon/three-circle.svg") no-repeat center;
|
background: url("./assets/img/icon/three-circle.svg") no-repeat center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__list{
|
&__list{
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: var(--space-between-block);
|
gap: var(--space-between-block);
|
||||||
|
|
|
||||||
|
|
@ -2,50 +2,61 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
margin-bottom: var(--space-between-block);
|
margin-bottom: var(--space-between-block);
|
||||||
|
|
||||||
&.m--btns{
|
&.m--btns{
|
||||||
gap: 10px;
|
|
||||||
@mixin responsive-xs {
|
@mixin responsive-xs {
|
||||||
.button{
|
.button{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gap: 10px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
border: none;
|
position: relative;
|
||||||
background: none;
|
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
margin-right: 10px;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
font-size: 2rem;
|
||||||
color: var(--color-white);
|
color: var(--color-white);
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
font-size: 2rem;
|
|
||||||
margin-right: 10px;
|
background: none;
|
||||||
position: relative;
|
border: none;
|
||||||
display: flex;
|
|
||||||
padding: 0;
|
|
||||||
transition: all 0.5s ease;
|
transition: all 0.5s ease;
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
|
|
||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
|
width: 3px;
|
||||||
|
height: 100%;
|
||||||
|
margin-left: 10px;
|
||||||
|
|
||||||
background: var(--color-white);
|
background: var(--color-white);
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
height: 100%;
|
|
||||||
width: 3px;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.is-active, &:hover {
|
&.is-active, &:hover {
|
||||||
color: transparent;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
background-image: var(--linear-gradient);
|
|
||||||
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
cursor: url("./assets/img/icon/cursor.svg"), auto;
|
||||||
|
color: transparent;
|
||||||
|
background-image: var(--linear-gradient);
|
||||||
|
background-clip: text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,36 @@
|
||||||
.team {
|
.team {
|
||||||
margin-left: auto;
|
|
||||||
max-width: calc(100vw - ((100vw - var(--container)) / 2));
|
|
||||||
margin-bottom: var(--space-between-sections);
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
@mixin responsive-xl {
|
@mixin responsive-xl {
|
||||||
padding: 0 0 0 20px;
|
padding: 0 0 0 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
|
max-width: calc(100vw - ((100vw - var(--container)) / 2));
|
||||||
|
margin-bottom: var(--space-between-sections);
|
||||||
|
margin-left: auto;
|
||||||
|
|
||||||
&__header {
|
&__header {
|
||||||
display: flex;
|
|
||||||
max-width: var(--container);
|
|
||||||
margin-right: auto;
|
|
||||||
padding: 0 50px 0;
|
|
||||||
margin-bottom: var(--space-between-block);
|
|
||||||
@mixin responsive-xl {
|
@mixin responsive-xl {
|
||||||
padding: 0 40px 0 0;
|
|
||||||
column-gap: var(--space-between-block);
|
column-gap: var(--space-between-block);
|
||||||
|
padding: 0 40px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
max-width: var(--container);
|
||||||
|
margin-right: auto;
|
||||||
|
margin-bottom: var(--space-between-block);
|
||||||
|
padding: 0 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
margin-bottom: 0;
|
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
margin-bottom: 0;
|
||||||
text-wrap: nowrap;
|
text-wrap: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -44,79 +49,93 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&__tools {
|
&__tools {
|
||||||
margin-top: 65px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-between;
|
|
||||||
max-width: var(--container);
|
|
||||||
margin-right: auto;
|
|
||||||
row-gap: 1.5rem;
|
|
||||||
padding: 0 50px 0;
|
|
||||||
@mixin responsive-xl {
|
@mixin responsive-xl {
|
||||||
padding: 0 80px 0 35px;
|
padding: 0 80px 0 35px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-l {
|
@mixin responsive-l {
|
||||||
padding: 0 40px 0 0;
|
padding: 0 40px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
row-gap: 1.5rem;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
max-width: var(--container);
|
||||||
|
margin-top: 65px;
|
||||||
|
margin-right: auto;
|
||||||
|
padding: 0 50px;
|
||||||
|
|
||||||
.m--link{
|
.m--link{
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__progress {
|
&__progress {
|
||||||
width: 100%;
|
|
||||||
height: 4px;
|
|
||||||
position: relative;
|
|
||||||
max-width: 460px;
|
|
||||||
background: var(--color-white-opacity);
|
|
||||||
border-radius: 20px;
|
|
||||||
overflow: hidden;
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
max-width: none;
|
max-width: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
max-width: 460px;
|
||||||
|
height: 4px;
|
||||||
|
|
||||||
|
background: var(--color-white-opacity);
|
||||||
|
border-radius: 20px;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
background: var(--color-white);
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
|
||||||
top: 0;
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
transform-origin: left top;
|
||||||
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
transform-origin: left top;
|
|
||||||
|
background: var(--color-white);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__cover {
|
&__cover {
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
height: 450px;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
height: 450px;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__name {
|
&__name {
|
||||||
font-weight: 500;
|
|
||||||
font-size: 1.5rem;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
|
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-weight: 500;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-weight: 400;
|
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__description {
|
&__description {
|
||||||
max-width: 820px;
|
|
||||||
@mixin responsive-xl {
|
@mixin responsive-xl {
|
||||||
max-width: calc(100% - var(--space-between-block));
|
max-width: calc(100% - var(--space-between-block));
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin responsive-s {
|
@mixin responsive-s {
|
||||||
max-width: none;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
max-width: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
max-width: 820px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,9 @@ $document-width-s: 730px;
|
||||||
$document-width-xs: 640px;
|
$document-width-xs: 640px;
|
||||||
$document-width-xxs: 480px;
|
$document-width-xxs: 480px;
|
||||||
$color-primary: #5e5bfc;
|
$color-primary: #5e5bfc;
|
||||||
$color-white: #ffffff;
|
$color-white: #fff;
|
||||||
$color-white-opacity: #bbb9ca;
|
$color-white-opacity: #bbb9ca;
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--color-black: #232323;
|
--color-black: #232323;
|
||||||
--color-white: $color-white;
|
--color-white: $color-white;
|
||||||
|
|
@ -14,24 +15,14 @@ $color-white-opacity: #bbb9ca;
|
||||||
--color-white-opacity: $color-white-opacity;
|
--color-white-opacity: $color-white-opacity;
|
||||||
--bg-wrapper-modal: #000000e5;
|
--bg-wrapper-modal: #000000e5;
|
||||||
--color-primary: $color-primary;
|
--color-primary: $color-primary;
|
||||||
--color-black-cc: #000000cc;
|
--color-black-cc: #000c;
|
||||||
--color-emmit: #e81717;
|
--color-emmit: #e81717;
|
||||||
--bg-opacity: #74767d;
|
--bg-opacity: #74767d;
|
||||||
--base-fz: 18px;
|
--base-fz: 18px;
|
||||||
--base-lh: 1.3;
|
--base-lh: 1.3;
|
||||||
--font-family-base: 'Manrope', 'Tahoma', sans-serif;
|
--font-family-base: 'Manrope', 'Tahoma', sans-serif;
|
||||||
--linear-gradient-highlight: linear-gradient(
|
--linear-gradient-highlight: linear-gradient(259.3deg, #5e5bfc 0.44%, #871df0 97.88%);
|
||||||
259.3deg,
|
--linear-gradient: linear-gradient(91.17deg, #c6f1f7 -4.01%, #f983e9 36.14%, #b877ff 77.44%, #c2e9cd 106.11%);
|
||||||
#5e5bfc 0.44%,
|
|
||||||
#871df0 97.88%
|
|
||||||
);
|
|
||||||
--linear-gradient: linear-gradient(
|
|
||||||
91.17deg,
|
|
||||||
#c6f1f7 -4.01%,
|
|
||||||
#f983e9 36.14%,
|
|
||||||
#b877ff 77.44%,
|
|
||||||
#c2e9cd 106.11%
|
|
||||||
);
|
|
||||||
--container: $document-width-xl;
|
--container: $document-width-xl;
|
||||||
--space-between-block: calc(var(--base-fz) * 2.25);
|
--space-between-block: calc(var(--base-fz) * 2.25);
|
||||||
--space-between-sections: calc(var(--base-fz) * 7);
|
--space-between-sections: calc(var(--base-fz) * 7);
|
||||||
|
|
@ -40,13 +31,16 @@ $color-white-opacity: #bbb9ca;
|
||||||
@media (max-width: $document-width-xl) {
|
@media (max-width: $document-width-xl) {
|
||||||
--container: $document-width-l;
|
--container: $document-width-l;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: $document-width-l) {
|
@media (max-width: $document-width-l) {
|
||||||
--container: $document-width-m;
|
--container: $document-width-m;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: $document-width-m) {
|
@media (max-width: $document-width-m) {
|
||||||
--container: $document-width-s;
|
--container: $document-width-s;
|
||||||
--space-between-sections: calc(var(--base-fz) * 2.7);
|
--space-between-sections: calc(var(--base-fz) * 2.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: $document-width-s) {
|
@media (max-width: $document-width-s) {
|
||||||
--container: $document-width-xs;
|
--container: $document-width-xs;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M19.6499 10.4707L36.2205 21.7959C37.8587 22.8014 37.9651 24.941 36.4308 26.07L19.8603 37.1358C17.9201 38.5687 15 37.326 15 35.0679V12.6794C15 10.53 17.6776 9.25767 19.6499 10.4707Z" fill="url(#paint0_linear_764_558)" stroke="url(#paint1_linear_764_558)" stroke-width="7.67085" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_764_558" x1="16.5052" y1="11.6349" x2="37.4699" y2="31.8231" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#8E00FE"/>
|
||||||
|
<stop offset="1" stop-color="#6800FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint1_linear_764_558" x1="16.5052" y1="11.6349" x2="37.4699" y2="31.8231" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#8E00FE"/>
|
||||||
|
<stop offset="1" stop-color="#6800FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 881 B |
|
|
@ -0,0 +1,13 @@
|
||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12.8909 7.29266L23.1931 14.3337C24.2116 14.9589 24.2778 16.289 23.3239 16.991L13.0217 23.8708C11.8155 24.7616 10 23.989 10 22.5851V8.66585C10 7.32952 11.6647 6.53848 12.8909 7.29266Z" fill="url(#paint0_linear_764_557)" stroke="url(#paint1_linear_764_557)" stroke-width="4.76909" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_764_557" x1="10.9358" y1="8.01644" x2="23.9699" y2="20.5678" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#8E00FE"/>
|
||||||
|
<stop offset="1" stop-color="#6800FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint1_linear_764_557" x1="10.9358" y1="8.01644" x2="23.9699" y2="20.5678" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#8E00FE"/>
|
||||||
|
<stop offset="1" stop-color="#6800FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 884 B |
|
|
@ -0,0 +1,13 @@
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M6.44547 3.4592L11.5966 6.97972C12.1058 7.29229 12.1389 7.95738 11.6619 8.30836L6.51086 11.7482C5.90775 12.1937 5 11.8074 5 11.1054V4.14579C5 3.47763 5.83236 3.08211 6.44547 3.4592Z" fill="url(#paint0_linear_764_556)" stroke="url(#paint1_linear_764_556)" stroke-width="2.38454" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_764_556" x1="5.46789" y1="3.82109" x2="11.9849" y2="10.0968" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#8E00FE"/>
|
||||||
|
<stop offset="1" stop-color="#6800FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint1_linear_764_556" x1="5.46789" y1="3.82109" x2="11.9849" y2="10.0968" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#8E00FE"/>
|
||||||
|
<stop offset="1" stop-color="#6800FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 882 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
|
|
@ -1,12 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app__breadcrumbs breadcrumbs">
|
<div class="app__breadcrumbs breadcrumbs">
|
||||||
<router-link
|
<router-link v-for="(item, key) in breadcrumbs" :key="key" v-slot="{ href, navigate }" :to="item.route" custom>
|
||||||
v-for="(item, key) in breadcrumbs"
|
|
||||||
:key="key"
|
|
||||||
v-slot="{ href, navigate }"
|
|
||||||
:to="item.route"
|
|
||||||
custom
|
|
||||||
>
|
|
||||||
<div v-if="item.name" class="breadcrumbs__item">
|
<div v-if="item.name" class="breadcrumbs__item">
|
||||||
<a :href="href" class="breadcrumbs__item-link" @click="navigate">
|
<a :href="href" class="breadcrumbs__item-link" @click="navigate">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
|
|
|
||||||
|
|
@ -4,33 +4,20 @@
|
||||||
<h2 class="h2 m--white">Напишите нам</h2>
|
<h2 class="h2 m--white">Напишите нам</h2>
|
||||||
<div class="footer__question">
|
<div class="footer__question">
|
||||||
<div class="text">Остались вопросы? Мы с радостью вам ответим!</div>
|
<div class="text">Остались вопросы? Мы с радостью вам ответим!</div>
|
||||||
<button class="button m--white m--arrow footer__question-button">
|
<button class="button m--white m--arrow footer__question-button">Написать</button>
|
||||||
Написать
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer__bottom">
|
<div class="footer__bottom">
|
||||||
<ul class="footer__menu">
|
<ul class="footer__menu">
|
||||||
<li
|
<li v-for="(item, key) in menu" :key="key" :class="['footer__menu-item', item.class]">
|
||||||
v-for="(item, key) in menu"
|
<router-link :to="{ name: item.name, params: item.params }" class="footer__menu-link">
|
||||||
:key="key"
|
|
||||||
:class="['footer__menu-item', item.class]"
|
|
||||||
>
|
|
||||||
<router-link
|
|
||||||
:to="{ name: item.name, params: item.params }"
|
|
||||||
class="footer__menu-link"
|
|
||||||
>
|
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="footer__connection">
|
<div class="footer__connection">
|
||||||
<ul class="footer__social">
|
<ul class="footer__social">
|
||||||
<li
|
<li v-for="(item, key) in socialMenu" :key="key" :class="['footer__menu-item', item.class]">
|
||||||
v-for="(item, key) in socialMenu"
|
|
||||||
:key="key"
|
|
||||||
:class="['footer__menu-item', item.class]"
|
|
||||||
>
|
|
||||||
<router-link :to="item.link" class="footer__menu-link">
|
<router-link :to="item.link" class="footer__menu-link">
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
@ -38,14 +25,10 @@
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="footer__connection">
|
<ul class="footer__connection">
|
||||||
<li class="footer__menu-item">
|
<li class="footer__menu-item">
|
||||||
<router-link to="#" class="m--underline">
|
<router-link to="#" class="m--underline"> it@radio.org </router-link>
|
||||||
it@radio.org
|
|
||||||
</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="footer__menu-item">
|
<li class="footer__menu-item">
|
||||||
<router-link to="#" class="m--underline">
|
<router-link to="#" class="m--underline"> +7 (900) 000-01-12 </router-link>
|
||||||
+7 (900) 000-01-12
|
|
||||||
</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -11,16 +11,8 @@
|
||||||
<li class="header__logo m--menu" @click="next('home')">
|
<li class="header__logo m--menu" @click="next('home')">
|
||||||
<img src="@/assets/img/icon/logo.svg" alt="logo" />
|
<img src="@/assets/img/icon/logo.svg" alt="logo" />
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li v-for="(item, key) in menu" :key="key" :class="['header__menu-item', item.class]">
|
||||||
v-for="(item, key) in menu"
|
<router-link v-if="!item.action" :to="{ name: item.name, params: item.params }" class="header__menu-link">
|
||||||
:key="key"
|
|
||||||
:class="['header__menu-item', item.class]"
|
|
||||||
>
|
|
||||||
<router-link
|
|
||||||
v-if="!item.action"
|
|
||||||
:to="{ name: item.name, params: item.params }"
|
|
||||||
class="header__menu-link"
|
|
||||||
>
|
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
</router-link>
|
</router-link>
|
||||||
<button
|
<button
|
||||||
|
|
@ -31,12 +23,7 @@
|
||||||
>
|
>
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button v-else class="header__menu-icon" :class="[item.icon]" @click="handlerClick(item.action)"></button>
|
||||||
v-else
|
|
||||||
class="header__menu-icon"
|
|
||||||
:class="[item.icon]"
|
|
||||||
@click="handlerClick(item.action)"
|
|
||||||
></button>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="header__burger" @click="handlerShowMenu">
|
<div class="header__burger" @click="handlerShowMenu">
|
||||||
|
|
|
||||||
|
|
@ -36,15 +36,13 @@ export default {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
title:
|
title: 'Искусственный интеллект меняет мир технологий: возможности и вызовы',
|
||||||
'Искусственный интеллект меняет мир технологий: возможности и вызовы',
|
|
||||||
time: '2',
|
time: '2',
|
||||||
data: '21 октября',
|
data: '21 октября',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 3,
|
id: 3,
|
||||||
title:
|
title: 'Как кибербезопасность становится ключевым фактором успеха в IT',
|
||||||
'Как кибербезопасность становится ключевым фактором успеха в IT',
|
|
||||||
time: '2',
|
time: '2',
|
||||||
data: '21 октября',
|
data: '21 октября',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -161,10 +161,7 @@ export default {
|
||||||
node.setErrors([err.detail], err.error);
|
node.setErrors([err.detail], err.error);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (this.formRegistration.password === this.formRegistration.repeatPassword) {
|
||||||
this.formRegistration.password ===
|
|
||||||
this.formRegistration.repeatPassword
|
|
||||||
) {
|
|
||||||
app
|
app
|
||||||
.createUser(this.formRegistration)
|
.createUser(this.formRegistration)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,7 @@
|
||||||
<div class="title m--white rubric-modal__title">
|
<div class="title m--white rubric-modal__title">
|
||||||
{{ rubrik.name }}
|
{{ rubrik.name }}
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button class="button modal__close rubric-modal__close" @click="$emit('hideModal')"></button>
|
||||||
class="button modal__close rubric-modal__close"
|
|
||||||
@click="$emit('hideModal')"
|
|
||||||
></button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="rubric-modal__cover">
|
<div class="rubric-modal__cover">
|
||||||
<img :src="`${selfUrl}${rubrik.img}`" alt="" />
|
<img :src="`${selfUrl}${rubrik.img}`" alt="" />
|
||||||
|
|
@ -30,9 +27,7 @@
|
||||||
<div class="rubric-modal__description">
|
<div class="rubric-modal__description">
|
||||||
{{ rubrik.description }}
|
{{ rubrik.description }}
|
||||||
</div>
|
</div>
|
||||||
<button class="button m--fit-content m--white m--arrow" v-if="user?.id">
|
<button class="button m--fit-content m--white m--arrow" v-if="user?.id">Написать</button>
|
||||||
Написать
|
|
||||||
</button>
|
|
||||||
</template>
|
</template>
|
||||||
</vue-final-modal>
|
</vue-final-modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -97,28 +97,16 @@ export default {
|
||||||
if (count <= 4) {
|
if (count <= 4) {
|
||||||
items.push({ text: item, value: item });
|
items.push({ text: item, value: item });
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (item === 1 && this.currentPage !== item && this.currentPage - 1 !== 1 && this.currentPage - 2 !== 1) {
|
||||||
item === 1 &&
|
|
||||||
this.currentPage !== item &&
|
|
||||||
this.currentPage - 1 !== 1 &&
|
|
||||||
this.currentPage - 2 !== 1
|
|
||||||
) {
|
|
||||||
items.push({ text: '1', value: 1 });
|
items.push({ text: '1', value: 1 });
|
||||||
items.push({ text: '...', value: null });
|
items.push({ text: '...', value: null });
|
||||||
} else if (
|
} else if (item === count && this.currentPage + 1 !== count && this.currentPage + 2 !== count) {
|
||||||
item === count &&
|
|
||||||
this.currentPage + 1 !== count &&
|
|
||||||
this.currentPage + 2 !== count
|
|
||||||
) {
|
|
||||||
items.push({ text: '...', value: null });
|
items.push({ text: '...', value: null });
|
||||||
items.push({ text: count, value: count });
|
items.push({ text: count, value: count });
|
||||||
} else {
|
} else {
|
||||||
let deltaPrev = count - this.currentPage <= 3 ? 3 : 2;
|
let deltaPrev = count - this.currentPage <= 3 ? 3 : 2;
|
||||||
let deltaAfter = this.currentPage <= 3 ? 4 - this.currentPage : 2;
|
let deltaAfter = this.currentPage <= 3 ? 4 - this.currentPage : 2;
|
||||||
if (
|
if (item > this.currentPage - deltaPrev && item < this.currentPage + deltaAfter) {
|
||||||
item > this.currentPage - deltaPrev &&
|
|
||||||
item < this.currentPage + deltaAfter
|
|
||||||
) {
|
|
||||||
console.log(item);
|
console.log(item);
|
||||||
items.push({ text: item, value: item });
|
items.push({ text: item, value: item });
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,26 +2,17 @@
|
||||||
<div class="player">
|
<div class="player">
|
||||||
<div class="player__cover">
|
<div class="player__cover">
|
||||||
<q-skeleton v-if="loaderPlay" height="100%" />
|
<q-skeleton v-if="loaderPlay" height="100%" />
|
||||||
<img v-else :src="currentPlay.art" alt="player" />
|
<template v-else>
|
||||||
|
<img v-if="currentPlay.art" :src="currentPlay.art" alt="player" />
|
||||||
|
<img v-else :src="require('@/assets/img/mock/template-artist.png')" alt="player" />
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div class="player__content">
|
<div class="player__content">
|
||||||
<div class="player__top">
|
<div class="player__top">
|
||||||
<q-skeleton
|
<q-skeleton v-if="loaderPlay" type="circle" class="player__btn m--skeleton" />
|
||||||
v-if="loaderPlay"
|
|
||||||
type="circle"
|
|
||||||
class="player__btn m--skeleton"
|
|
||||||
/>
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<button
|
<button v-if="currentPlay.isPlay" @click="handlerPause" class="button player__btn m--pause"></button>
|
||||||
v-if="currentPlay.isPlay"
|
<button v-else @click="handlerPlay" class="button player__btn m--play"></button>
|
||||||
@click="handlerPause"
|
|
||||||
class="button player__btn m--pause"
|
|
||||||
></button>
|
|
||||||
<button
|
|
||||||
v-else
|
|
||||||
@click="handlerPlay"
|
|
||||||
class="button player__btn m--play"
|
|
||||||
></button>
|
|
||||||
</template>
|
</template>
|
||||||
<div class="player__executor">
|
<div class="player__executor">
|
||||||
<q-skeleton v-if="loaderPlay" class="player__executor m--skeleton" />
|
<q-skeleton v-if="loaderPlay" class="player__executor m--skeleton" />
|
||||||
|
|
@ -37,12 +28,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div @click="handleAuthRequired">
|
<div @click="handleAuthRequired">
|
||||||
<q-skeleton v-if="loaderPlay" class="player__favorites m--skeleton" />
|
<q-skeleton v-if="loaderPlay" class="player__favorites m--skeleton" />
|
||||||
<div
|
<div v-else class="player__favorites" :class="[isFavorites && 'm--active']" @click="handlerFavorites"></div>
|
||||||
v-else
|
|
||||||
class="player__favorites"
|
|
||||||
:class="[isFavorites && 'm--active']"
|
|
||||||
@click="handlerFavorites"
|
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="player__tools">
|
<div class="player__tools">
|
||||||
<q-skeleton v-if="loaderPlay" class="player__tools m--skeleton" />
|
<q-skeleton v-if="loaderPlay" class="player__tools m--skeleton" />
|
||||||
|
|
@ -60,26 +46,14 @@
|
||||||
<span
|
<span
|
||||||
ref="volumeIcon"
|
ref="volumeIcon"
|
||||||
@click="toggleVolume"
|
@click="toggleVolume"
|
||||||
:class="
|
:class="songVolume == 0 ? 'player__volume-off' : 'player__volume-on'"
|
||||||
songVolume == 0 ? 'player__volume-off' : 'player__volume-on'
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
<input
|
|
||||||
type="range"
|
|
||||||
min="0"
|
|
||||||
max="1"
|
|
||||||
step="0.01"
|
|
||||||
v-model="songVolume"
|
|
||||||
@input="changeVolume"
|
|
||||||
/>
|
/>
|
||||||
|
<input type="range" min="0" max="1" step="0.01" v-model="songVolume" @input="changeVolume" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="player__bottom">
|
<div class="player__bottom">
|
||||||
<div
|
<div class="player__time" :class="!loaderPlay && !isUserMusic && 'm--ether'">
|
||||||
class="player__time"
|
|
||||||
:class="!loaderPlay && !isUserMusic && 'm--ether'"
|
|
||||||
>
|
|
||||||
<q-skeleton v-if="loaderPlay" />
|
<q-skeleton v-if="loaderPlay" />
|
||||||
<template v-else-if="isUserMusic">
|
<template v-else-if="isUserMusic">
|
||||||
{{ getTime(playerInfo.currentTime) }} /
|
{{ getTime(playerInfo.currentTime) }} /
|
||||||
|
|
@ -89,12 +63,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="player__progress">
|
<div class="player__progress">
|
||||||
<q-skeleton v-if="loaderPlay" height="5px" />
|
<q-skeleton v-if="loaderPlay" height="5px" />
|
||||||
<input
|
<input v-else :disabled="!isUserMusic" type="range" v-model="playerInfo.progress" />
|
||||||
v-else
|
|
||||||
:disabled="!isUserMusic"
|
|
||||||
type="range"
|
|
||||||
v-model="playerInfo.progress"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -189,9 +158,7 @@ export default {
|
||||||
...this.userSongList[this.currentPlay.currentIndex || 0],
|
...this.userSongList[this.currentPlay.currentIndex || 0],
|
||||||
live: false,
|
live: false,
|
||||||
});
|
});
|
||||||
this.getAudio(
|
this.getAudio(this.userSongList[this.currentPlay.currentIndex || 0]?.azura_id);
|
||||||
this.userSongList[this.currentPlay.currentIndex || 0]?.azura_id,
|
|
||||||
);
|
|
||||||
if (this.player.target) {
|
if (this.player.target) {
|
||||||
this.player.target.addEventListener('timeupdate', this.updateProgress);
|
this.player.target.addEventListener('timeupdate', this.updateProgress);
|
||||||
}
|
}
|
||||||
|
|
@ -238,16 +205,12 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
handleConnection(e) {
|
handleConnection(e) {
|
||||||
// console.log('getPlaying', e);
|
|
||||||
const jsonData = JSON.parse(e.data);
|
const jsonData = JSON.parse(e.data);
|
||||||
// console.log('jsonData', jsonData);
|
|
||||||
const data =
|
const data =
|
||||||
// Второй ответ
|
// Второй ответ
|
||||||
jsonData?.pub?.data ||
|
jsonData?.pub?.data ||
|
||||||
// Первый ответ
|
// Первый ответ
|
||||||
jsonData?.connect?.subs?.['station:it-radio']?.publications?.[0]?.data;
|
jsonData?.connect?.subs?.['station:it-radio']?.publications?.[0]?.data;
|
||||||
// console.log('getPlaying', data);
|
|
||||||
// console.log(data);
|
|
||||||
|
|
||||||
if (!data) return;
|
if (!data) return;
|
||||||
if (this.currentPlay.live) {
|
if (this.currentPlay.live) {
|
||||||
|
|
@ -255,12 +218,9 @@ export default {
|
||||||
const dataUrl = data.np.station.listen_url;
|
const dataUrl = data.np.station.listen_url;
|
||||||
// Объект с данными музыки
|
// Объект с данными музыки
|
||||||
const dataSong = data.np.now_playing.song;
|
const dataSong = data.np.now_playing.song;
|
||||||
// console.log(dataSong);
|
|
||||||
const playerUrl = this.player.target.src;
|
const playerUrl = this.player.target.src;
|
||||||
if (dataUrl !== playerUrl) {
|
if (dataUrl !== playerUrl) {
|
||||||
// console.log('data.np.station.listen_url', dataUrl);
|
|
||||||
this.$store.dispatch('changePlayer', dataUrl);
|
this.$store.dispatch('changePlayer', dataUrl);
|
||||||
// console.log(this.player);
|
|
||||||
this.actionCurrentPlay(dataSong);
|
this.actionCurrentPlay(dataSong);
|
||||||
}
|
}
|
||||||
if (dataSong.id !== this.currentPlay.id) {
|
if (dataSong.id !== this.currentPlay.id) {
|
||||||
|
|
@ -269,7 +229,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actionCurrentPlay(song) {
|
actionCurrentPlay(song) {
|
||||||
// console.log('actionCurrentPlay', data);
|
console.log('actionCurrentPlay', song);
|
||||||
const currentPlay = {
|
const currentPlay = {
|
||||||
...this.currentPlay, // Инфа про текущий трек
|
...this.currentPlay, // Инфа про текущий трек
|
||||||
...song,
|
...song,
|
||||||
|
|
@ -278,23 +238,18 @@ export default {
|
||||||
live: true,
|
live: true,
|
||||||
currentIndex: null,
|
currentIndex: null,
|
||||||
};
|
};
|
||||||
// console.log('params in getPlaying ', params);
|
|
||||||
// delete params.unique_id;
|
// delete params.unique_id;
|
||||||
this.$store.dispatch('setCurrentPlay', currentPlay);
|
this.$store.dispatch('setCurrentPlay', currentPlay);
|
||||||
},
|
},
|
||||||
updateProgress(e) {
|
updateProgress(e) {
|
||||||
this.playerInfo = {
|
this.playerInfo = {
|
||||||
...this.playerInfo,
|
...this.playerInfo,
|
||||||
progress:
|
progress: (this.player.target.currentTime / this.player.target.duration) * 100,
|
||||||
(this.player.target.currentTime / this.player.target.duration) * 100,
|
|
||||||
currentTime: this.player.target.currentTime,
|
currentTime: this.player.target.currentTime,
|
||||||
};
|
};
|
||||||
if (this.player.target.currentTime === this.player.target.duration) {
|
if (this.player.target.currentTime === this.player.target.duration) {
|
||||||
let currentIndex = this.currentPlay.currentIndex + 1;
|
let currentIndex = this.currentPlay.currentIndex + 1;
|
||||||
if (
|
if (!this.userSongList[currentIndex]?.azura_id || currentIndex === null) {
|
||||||
!this.userSongList[currentIndex]?.azura_id ||
|
|
||||||
currentIndex === null
|
|
||||||
) {
|
|
||||||
currentIndex = 0;
|
currentIndex = 0;
|
||||||
}
|
}
|
||||||
this.$store.dispatch('setCurrentPlay', {
|
this.$store.dispatch('setCurrentPlay', {
|
||||||
|
|
@ -334,9 +289,7 @@ export default {
|
||||||
if (this.user?.id) {
|
if (this.user?.id) {
|
||||||
const params = {
|
const params = {
|
||||||
...this.currentPlay,
|
...this.currentPlay,
|
||||||
azura_id: Number(this.currentPlay.id)
|
azura_id: Number(this.currentPlay.id) ? this.currentPlay.azura_id : this.currentPlay.id,
|
||||||
? this.currentPlay.azura_id
|
|
||||||
: this.currentPlay.id,
|
|
||||||
};
|
};
|
||||||
if (!this.isFavorites) {
|
if (!this.isFavorites) {
|
||||||
delete params.id;
|
delete params.id;
|
||||||
|
|
@ -396,8 +349,7 @@ export default {
|
||||||
this.player.target.addEventListener('timeupdate', this.updateProgress);
|
this.player.target.addEventListener('timeupdate', this.updateProgress);
|
||||||
|
|
||||||
blob.arrayBuffer().then((buffer) => {
|
blob.arrayBuffer().then((buffer) => {
|
||||||
var audioContext = new (window.AudioContext ||
|
var audioContext = new (window.AudioContext || window.webkitAudioContext)();
|
||||||
window.webkitAudioContext)();
|
|
||||||
audioContext.decodeAudioData(buffer, (decodedData) => {
|
audioContext.decodeAudioData(buffer, (decodedData) => {
|
||||||
this.playerInfo.duration = decodedData.duration;
|
this.playerInfo.duration = decodedData.duration;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,18 +2,13 @@
|
||||||
<div class="rubric-block">
|
<div class="rubric-block">
|
||||||
<div class="rubric-block__header">
|
<div class="rubric-block__header">
|
||||||
<h2 class="h2 rubric-block__header-title">Рубрики</h2>
|
<h2 class="h2 rubric-block__header-title">Рубрики</h2>
|
||||||
<button
|
<button class="button m--arrow rubric-block__link" v-if="$route.name !== 'rubric'" @click="next('rubric')">
|
||||||
class="button m--arrow rubric-block__link"
|
|
||||||
v-if="$route.name !== 'rubric'"
|
|
||||||
@click="next('rubric')"
|
|
||||||
>
|
|
||||||
Смотреть все
|
Смотреть все
|
||||||
</button>
|
</button>
|
||||||
<div class="p rubric-block__description">
|
<div class="p rubric-block__description">
|
||||||
IT-радио - это уникальная платформа для обмена опытом, знаниями и
|
IT-радио - это уникальная платформа для обмена опытом, знаниями и обсуждения актуальных вопросов, связанных с
|
||||||
обсуждения актуальных вопросов, связанных с разработкой программного
|
разработкой программного обеспечения, искусственного интеллекта, интернета вещей и других направлений
|
||||||
обеспечения, искусственного интеллекта, интернета вещей и других
|
IT-индустрии
|
||||||
направлений IT-индустрии
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="showLoader">
|
<template v-if="showLoader">
|
||||||
|
|
@ -23,27 +18,14 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div v-else class="rubric-block__list">
|
<div v-else class="rubric-block__list">
|
||||||
<div
|
<div class="rubric-block__item" v-for="rubrik in rubriks" :key="`rubrik_${rubrik.id}`">
|
||||||
class="rubric-block__item"
|
|
||||||
v-for="rubrik in rubriks"
|
|
||||||
:key="`rubrik_${rubrik.id}`"
|
|
||||||
>
|
|
||||||
<div class="title rubric-block__title">{{ rubrik.name }}</div>
|
<div class="title rubric-block__title">{{ rubrik.name }}</div>
|
||||||
<div class="p rubric-block__description m--50">{{ rubrik.title }}</div>
|
<div class="p rubric-block__description m--50">{{ rubrik.title }}</div>
|
||||||
<button
|
<button class="button m--arrow rubric-block__btn" @click="showModalRubric(rubrik.id)">Узнать больше</button>
|
||||||
class="button m--arrow rubric-block__btn"
|
|
||||||
@click="showModalRubric(rubrik.id)"
|
|
||||||
>
|
|
||||||
Узнать больше
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<RubricModal
|
<RubricModal :showModal="isShowModalRubric" @hideModal="hiddenModalRubric" :selectRubric="ModalTemplate" />
|
||||||
:showModal="isShowModalRubric"
|
|
||||||
@hideModal="hiddenModalRubric"
|
|
||||||
:selectRubric="ModalTemplate"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
||||||
|
|
@ -1,67 +1,32 @@
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div class="song-item" :class="[selectSong && 'm--select']" @click="handlerSelectSong">
|
||||||
class="song-item"
|
|
||||||
:class="[selectSong && 'm--select']"
|
|
||||||
@click="handlerSelectSong"
|
|
||||||
>
|
|
||||||
<div class="song-item__selected" :class="[!isPlay && 'm--stop']">
|
<div class="song-item__selected" :class="[!isPlay && 'm--stop']">
|
||||||
<svg
|
<svg width="33" height="28" viewBox="0 0 33 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
width="33"
|
|
||||||
height="28"
|
|
||||||
viewBox="0 0 33 28"
|
|
||||||
fill="none"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<path
|
<path
|
||||||
class=""
|
class=""
|
||||||
d="M0 15C0 13.6193 1.11929 12.5 2.5 12.5C3.88071 12.5 5 13.6193 5 15V27.5H0V15Z"
|
d="M0 15C0 13.6193 1.11929 12.5 2.5 12.5C3.88071 12.5 5 13.6193 5 15V27.5H0V15Z"
|
||||||
fill="#7138F4"
|
fill="#7138F4"
|
||||||
/>
|
/>
|
||||||
<path
|
<path d="M7 9C7 7.61929 8.11929 6.5 9.5 6.5C10.8807 6.5 12 7.61929 12 9V27.5H7V9Z" fill="#7138F4" />
|
||||||
d="M7 9C7 7.61929 8.11929 6.5 9.5 6.5C10.8807 6.5 12 7.61929 12 9V27.5H7V9Z"
|
<path d="M14 12C14 10.6193 15.1193 9.5 16.5 9.5C17.8807 9.5 19 10.6193 19 12V27.5H14V12Z" fill="#7138F4" />
|
||||||
fill="#7138F4"
|
<path d="M21 3C21 1.61929 22.1193 0.5 23.5 0.5C24.8807 0.5 26 1.61929 26 3V27.5H21V3Z" fill="#7138F4" />
|
||||||
/>
|
<path d="M28 20C28 18.6193 29.1193 17.5 30.5 17.5C31.8807 17.5 33 18.6193 33 20V27.5H28V20Z" fill="#7138F4" />
|
||||||
<path
|
|
||||||
d="M14 12C14 10.6193 15.1193 9.5 16.5 9.5C17.8807 9.5 19 10.6193 19 12V27.5H14V12Z"
|
|
||||||
fill="#7138F4"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M21 3C21 1.61929 22.1193 0.5 23.5 0.5C24.8807 0.5 26 1.61929 26 3V27.5H21V3Z"
|
|
||||||
fill="#7138F4"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M28 20C28 18.6193 29.1193 17.5 30.5 17.5C31.8807 17.5 33 18.6193 33 20V27.5H28V20Z"
|
|
||||||
fill="#7138F4"
|
|
||||||
/>
|
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button
|
<button v-if="isPlay" @click.stop="handlerPause" class="button song-item__btn m--pause"></button>
|
||||||
v-if="isPlay"
|
<button v-else @click.stop="handlerPlay" class="button song-item__btn m--play"></button>
|
||||||
@click.stop="handlerPause"
|
|
||||||
class="button song-item__btn m--pause"
|
|
||||||
></button>
|
|
||||||
<button
|
|
||||||
v-else
|
|
||||||
@click.stop="handlerPlay"
|
|
||||||
class="button song-item__btn m--play"
|
|
||||||
></button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="song-item__info">
|
<div class="song-item__info">
|
||||||
<span>{{ song.title }}</span>
|
<span>{{ song.title }}</span>
|
||||||
{{ song.artist }}
|
{{ song.artist }}
|
||||||
</div>
|
</div>
|
||||||
<div class="song-item__tools">
|
<div class="song-item__tools">
|
||||||
<button
|
<button class="button song-item__btn m--small m--favorites" @click.stop="removeSong"></button>
|
||||||
class="button song-item__btn m--small m--favorites"
|
|
||||||
@click.stop="removeSong"
|
|
||||||
></button>
|
|
||||||
<button
|
<button
|
||||||
class="button song-item__btn m--small m--add"
|
class="button song-item__btn m--small m--add"
|
||||||
:class="songAlreadyAddPlaylist && 'm--already'"
|
:class="songAlreadyAddPlaylist && 'm--already'"
|
||||||
@click.stop="
|
@click.stop="songAlreadyAddPlaylist ? removeToPlaylist() : addPlaylist()"
|
||||||
songAlreadyAddPlaylist ? removeToPlaylist() : addPlaylist()
|
|
||||||
"
|
|
||||||
></button>
|
></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,7 @@
|
||||||
v-for="song in songList"
|
v-for="song in songList"
|
||||||
:key="song"
|
:key="song"
|
||||||
:song="song"
|
:song="song"
|
||||||
:playSong="
|
:playSong="song.azura_id === currentPlay.azura_id ? currentPlay.isPlay : false"
|
||||||
song.azura_id === currentPlay.azura_id ? currentPlay.isPlay : false
|
|
||||||
"
|
|
||||||
:selectSong="song.azura_id === currentPlay.azura_id"
|
:selectSong="song.azura_id === currentPlay.azura_id"
|
||||||
:songAlreadyAddPlaylist="songAlreadyAdd"
|
:songAlreadyAddPlaylist="songAlreadyAdd"
|
||||||
@selectSong="handlerSelectSong"
|
@selectSong="handlerSelectSong"
|
||||||
|
|
@ -46,9 +44,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
handlerSelectSong(params) {
|
handlerSelectSong(params) {
|
||||||
const data = { ...this.currentPlay, ...params, isLoader: true };
|
const data = { ...this.currentPlay, ...params, isLoader: true };
|
||||||
data.currentIndex = this.songList.findIndex(
|
data.currentIndex = this.songList.findIndex((el) => el.azura_id === params.azura_id);
|
||||||
(el) => el.azura_id === params.azura_id,
|
|
||||||
);
|
|
||||||
this.$store.dispatch('setCurrentPlay', data);
|
this.$store.dispatch('setCurrentPlay', data);
|
||||||
console.log('handlerSelectSong');
|
console.log('handlerSelectSong');
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -4,19 +4,17 @@
|
||||||
<div class="support-block__list">
|
<div class="support-block__list">
|
||||||
<div class="support-block__item m--one-circle">
|
<div class="support-block__item m--one-circle">
|
||||||
<div class="title">Донат</div>
|
<div class="title">Донат</div>
|
||||||
Мы будем рады, если вы поддержите нас любой суммой! Все средства пойдут
|
Мы будем рады, если вы поддержите нас любой суммой! Все средства пойдут на дальнейшее развитие проекта
|
||||||
на дальнейшее развитие проекта
|
|
||||||
</div>
|
</div>
|
||||||
<div class="support-block__item m--two-circle">
|
<div class="support-block__item m--two-circle">
|
||||||
<div class="title">Дело</div>
|
<div class="title">Дело</div>
|
||||||
Если вы фотографируете, монтируете, пишете, корректируете, занимаетесь
|
Если вы фотографируете, монтируете, пишете, корректируете, занимаетесь продвижением или делаете еще что-нибудь
|
||||||
продвижением или делаете еще что-нибудь классное и думаете, что можете
|
классное и думаете, что можете быть нам полезны на волонтерских началах — свяжитесь с нами через форму
|
||||||
быть нам полезны на волонтерских началах — свяжитесь с нами через форму
|
|
||||||
</div>
|
</div>
|
||||||
<div class="support-block__item m--three-circle">
|
<div class="support-block__item m--three-circle">
|
||||||
<div class="title">Развитие</div>
|
<div class="title">Развитие</div>
|
||||||
Расскажите о нашем проекте в соцсетях! Можно поделиться любым нашим
|
Расскажите о нашем проекте в соцсетях! Можно поделиться любым нашим постом, видео в ютубе или рассказать о нас в
|
||||||
постом, видео в ютубе или рассказать о нас в своей аудитории
|
своей аудитории
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,8 @@
|
||||||
<div class="team__header">
|
<div class="team__header">
|
||||||
<h2 class="h2 team__title">Наша команда</h2>
|
<h2 class="h2 team__title">Наша команда</h2>
|
||||||
<div class="team__description">
|
<div class="team__description">
|
||||||
На IT волне команда профессионалов неутомимо трудится, чтобы дарить
|
На IT волне команда профессионалов неутомимо трудится, чтобы дарить слушателям самые свежие и актуальные новости
|
||||||
слушателям самые свежие и актуальные новости из мира технологий,
|
из мира технологий, отвечать на их вопросы и обсуждать горячие темы на IT радио.
|
||||||
отвечать на их вопросы и обсуждать горячие темы на IT радио.
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="showLoader">
|
<template v-if="showLoader">
|
||||||
|
|
@ -43,11 +42,7 @@
|
||||||
}"
|
}"
|
||||||
class="team__slider"
|
class="team__slider"
|
||||||
>
|
>
|
||||||
<SwiperSlide
|
<SwiperSlide class="team__item" v-for="employee in team" :key="employee.id">
|
||||||
class="team__item"
|
|
||||||
v-for="employee in team"
|
|
||||||
:key="employee.id"
|
|
||||||
>
|
|
||||||
<div class="team__cover">
|
<div class="team__cover">
|
||||||
<img :src="`${selfUrl + employee.img_person}`" alt="user" />
|
<img :src="`${selfUrl + employee.img_person}`" alt="user" />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -61,9 +56,7 @@
|
||||||
<div class="team__progress" ref="progressBar">
|
<div class="team__progress" ref="progressBar">
|
||||||
<span></span>
|
<span></span>
|
||||||
</div>
|
</div>
|
||||||
<router-link :to="{ name: 'about' }" class="m--link">
|
<router-link :to="{ name: 'about' }" class="m--link"> Больше о нас </router-link>
|
||||||
Больше о нас
|
|
||||||
</router-link>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,12 @@
|
||||||
content="user-scalable=yes, initial-scale=1, maximum-scale=5, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>"
|
content="user-scalable=yes, initial-scale=1, maximum-scale=5, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>"
|
||||||
/>
|
/>
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||||
<link rel="icon" type="image/ico" href="favicon.ico" />
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||||
<link
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||||
rel="icon"
|
|
||||||
type="image/svg"
|
|
||||||
sizes="16x16"
|
|
||||||
href="icons/favicon-16x16.svg"
|
|
||||||
/>
|
|
||||||
<link rel="manifest" href="/site.webmanifest" />
|
<link rel="manifest" href="/site.webmanifest" />
|
||||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
|
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
|
||||||
<meta name="msapplication-TileColor" content="#00a300" />
|
<meta name="msapplication-TileColor" content="#da532c" />
|
||||||
<meta name="theme-color" content="#119b58" />
|
<meta name="theme-color" content="#ffffff" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- DO NOT touch the following DIV -->
|
<!-- DO NOT touch the following DIV -->
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
import { route } from 'quasar/wrappers';
|
import { route } from 'quasar/wrappers';
|
||||||
import store from '@/store';
|
import store from '@/store';
|
||||||
import {
|
import { createRouter, createMemoryHistory, createWebHistory, createWebHashHistory } from 'vue-router';
|
||||||
createRouter,
|
|
||||||
createMemoryHistory,
|
|
||||||
createWebHistory,
|
|
||||||
createWebHashHistory,
|
|
||||||
} from 'vue-router';
|
|
||||||
import routes from './routes';
|
import routes from './routes';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -43,13 +38,11 @@ export default route(function (/* { store, ssrContext } */) {
|
||||||
// Leave this as is and make changes in quasar.conf.js instead!
|
// Leave this as is and make changes in quasar.conf.js instead!
|
||||||
// quasar.conf.js -> build -> vueRouterMode
|
// quasar.conf.js -> build -> vueRouterMode
|
||||||
// quasar.conf.js -> build -> publicPath
|
// quasar.conf.js -> build -> publicPath
|
||||||
history: createHistory(
|
history: createHistory(process.env.MODE === 'ssr' ? void 0 : process.env.VUE_ROUTER_BASE),
|
||||||
process.env.MODE === 'ssr' ? void 0 : process.env.VUE_ROUTER_BASE,
|
|
||||||
),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Router.beforeEach((to, from, next) => {
|
Router.beforeEach((to, from, next) => {
|
||||||
console.log(process.env.SERVER);
|
// console.log(process.env.SERVER);
|
||||||
//уточнить зачем нужен process.env.SERVER
|
//уточнить зачем нужен process.env.SERVER
|
||||||
if (to.meta.isAuth && !process.env.SERVER) {
|
if (to.meta.isAuth && !process.env.SERVER) {
|
||||||
if (store.state.user) {
|
if (store.state.user) {
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,9 @@
|
||||||
import { urlPath as settings } from '@/settings';
|
import { urlPath as settings } from '@/settings';
|
||||||
import { REST, RESTError } from './rest';
|
import { REST, RESTError } from './rest';
|
||||||
|
|
||||||
// запросы на сервер Django
|
|
||||||
// console.log(settings);
|
// console.log(settings);
|
||||||
|
|
||||||
export default class extends REST {
|
export default class extends REST {
|
||||||
// export default class Django extends REST {
|
|
||||||
|
|
||||||
static get settings() {
|
static get settings() {
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
@ -233,10 +230,7 @@ export default class extends REST {
|
||||||
return data;
|
return data;
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
throw new RESTError(
|
throw new RESTError(error, 'Ошибка при получении информации о текущем треке');
|
||||||
error,
|
|
||||||
'Ошибка при получении информации о текущем треке',
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,7 @@ export default class extends REST {
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
// console.log('sseUriParams', sseUriParams.toString());
|
// console.log('sseUriParams', sseUriParams.toString());
|
||||||
this.connection = new EventSource(
|
this.connection = new EventSource(sseBaseUri + '?' + sseUriParams.toString());
|
||||||
sseBaseUri + '?' + sseUriParams.toString(),
|
|
||||||
);
|
|
||||||
// window.connection = this.connection;
|
// window.connection = this.connection;
|
||||||
// this.connection.onopen = (e) => console.log('connected', e);
|
// this.connection.onopen = (e) => console.log('connected', e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ class RESTError extends Error {
|
||||||
let detail =
|
let detail =
|
||||||
error.response &&
|
error.response &&
|
||||||
error.response.data &&
|
error.response.data &&
|
||||||
(error.response.data.detail ||
|
(error.response.data.detail || (error.response.data.error && error.response.data.error.detail));
|
||||||
(error.response.data.error && error.response.data.error.detail));
|
|
||||||
let header = (message || error.message) + (detail ? ': ' + detail : '');
|
let header = (message || error.message) + (detail ? ': ' + detail : '');
|
||||||
super(header);
|
super(header);
|
||||||
|
|
||||||
|
|
@ -39,23 +38,8 @@ class REST {
|
||||||
static get settings() {
|
static get settings() {
|
||||||
throw new Error('settings must be overridden');
|
throw new Error('settings must be overridden');
|
||||||
}
|
}
|
||||||
static _get(
|
static _get(url, params = {}, extraParams, use_cache = false, isBlob = false) {
|
||||||
url,
|
return this._request('get', url, params, {}, {}, extraParams, use_cache, isBlob);
|
||||||
params = {},
|
|
||||||
extraParams,
|
|
||||||
use_cache = false,
|
|
||||||
isBlob = false,
|
|
||||||
) {
|
|
||||||
return this._request(
|
|
||||||
'get',
|
|
||||||
url,
|
|
||||||
params,
|
|
||||||
{},
|
|
||||||
{},
|
|
||||||
extraParams,
|
|
||||||
use_cache,
|
|
||||||
isBlob,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
static _post(url, params, data) {
|
static _post(url, params, data) {
|
||||||
return this._request('post', url, params, data);
|
return this._request('post', url, params, data);
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
// THIS FEATURE-FLAG FILE IS AUTOGENERATED,
|
// THIS FEATURE-FLAG FILE IS AUTOGENERATED,
|
||||||
// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
|
// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
|
||||||
import "quasar/dist/types/feature-flag";
|
import 'quasar/dist/types/feature-flag';
|
||||||
|
|
||||||
declare module "quasar/dist/types/feature-flag" {
|
declare module 'quasar/dist/types/feature-flag' {
|
||||||
interface QuasarFeatureFlags {
|
interface QuasarFeatureFlags {
|
||||||
store: true;
|
store: true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,10 +24,7 @@ export default class {
|
||||||
delete params.extraData;
|
delete params.extraData;
|
||||||
}
|
}
|
||||||
if (params.extraParams) {
|
if (params.extraParams) {
|
||||||
params.params = this.__append_extra_params(
|
params.params = this.__append_extra_params(params.params, params.extraParams);
|
||||||
params.params,
|
|
||||||
params.extraParams,
|
|
||||||
);
|
|
||||||
delete params.extraParams;
|
delete params.extraParams;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -5,23 +5,16 @@
|
||||||
<div class="page404__block">
|
<div class="page404__block">
|
||||||
<div class="page404__info">
|
<div class="page404__info">
|
||||||
<div class="page404__info-title">404</div>
|
<div class="page404__info-title">404</div>
|
||||||
<div class="page404__info-subtitle">
|
<div class="page404__info-subtitle">Мы не можем найти то, что вы ищете</div>
|
||||||
Мы не можем найти то, что вы ищете
|
|
||||||
</div>
|
|
||||||
<div class="page404__info-content">
|
<div class="page404__info-content">
|
||||||
Возможно, запрашиваемая вами страница была перенесена или удалена.
|
Возможно, запрашиваемая вами страница была перенесена или удалена. Также возможно, что вы допустили
|
||||||
Также возможно, что вы допустили небольшую опечатку при вводе
|
небольшую опечатку при вводе адреса — такое случается даже с нами, поэтому еще раз внимательно проверьте.
|
||||||
адреса — такое случается даже с нами, поэтому еще раз внимательно
|
|
||||||
проверьте.
|
|
||||||
</div>
|
</div>
|
||||||
<div class="page404__info-bottom">
|
<div class="page404__info-bottom">
|
||||||
Переходите на главную страницу, там вы сможете найти много
|
Переходите на главную страницу, там вы сможете найти много полезной информации!
|
||||||
полезной информации!
|
|
||||||
</div>
|
</div>
|
||||||
<div class="page404__info-button">
|
<div class="page404__info-button">
|
||||||
<button class="button button-blue" @click="next()">
|
<button class="button button-blue" @click="next()">На главную</button>
|
||||||
На главную
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -6,17 +6,12 @@
|
||||||
<div class="page500__info">
|
<div class="page500__info">
|
||||||
<div class="page500__info-title">Упс!</div>
|
<div class="page500__info-title">Упс!</div>
|
||||||
<div class="page500__info-subtitle">Что то пошло не так!</div>
|
<div class="page500__info-subtitle">Что то пошло не так!</div>
|
||||||
<div class="page500__info-content">
|
<div class="page500__info-content">Мы уже знаем об этом и делаем все возможное!</div>
|
||||||
Мы уже знаем об этом и делаем все возможное!
|
|
||||||
</div>
|
|
||||||
<div class="page500__info-bottom">
|
<div class="page500__info-bottom">
|
||||||
Переходите на главную страницу, там вы сможете найти много
|
Переходите на главную страницу, там вы сможете найти много полезной информации!
|
||||||
полезной информации!
|
|
||||||
</div>
|
</div>
|
||||||
<div class="page500__info-button">
|
<div class="page500__info-button">
|
||||||
<button class="button button-blue" @click="next()">
|
<button class="button button-blue" @click="next()">На главную</button>
|
||||||
На главную
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -13,26 +13,22 @@
|
||||||
<div class="about__header-left">
|
<div class="about__header-left">
|
||||||
<h1 class="h2">О нас</h1>
|
<h1 class="h2">О нас</h1>
|
||||||
<div class="text about__header-description">
|
<div class="text about__header-description">
|
||||||
IT-радио — это не просто обычная радиостанция, мы ваши партнеры в
|
IT-радио — это не просто обычная радиостанция, мы ваши партнеры в творчестве и современных технологиях.
|
||||||
творчестве и современных технологиях.
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="about__header-right"></div>
|
<div class="about__header-right"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text about__header-bottom">
|
<div class="text about__header-bottom">
|
||||||
Наша миссия — воплотить ваши мечты в реальность, шаг за шагом.
|
Наша миссия — воплотить ваши мечты в реальность, шаг за шагом. Благодаря разнообразной команде ведущих,
|
||||||
Благодаря разнообразной команде ведущих, журналистов, разработчиков и
|
журналистов, разработчиков и новаторов, мы постоянно расширяем границы возможного в цифровом мире.
|
||||||
новаторов, мы постоянно расширяем границы возможного в цифровом мире.
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="about__description">
|
<div class="about__description">
|
||||||
<h2 class="h2">Мы здесь, чтобы открыть глаза на мир IT</h2>
|
<h2 class="h2">Мы здесь, чтобы открыть глаза на мир IT</h2>
|
||||||
<div class="about__description-info">
|
<div class="about__description-info">
|
||||||
<div class="text about__description-item m--left">
|
<div class="text about__description-item m--left">
|
||||||
IT-радио — это уникальный проект, который объединяет в себе самых
|
IT-радио — это уникальный проект, который объединяет в себе самых ярких представителей IT-индустрии, а также
|
||||||
ярких представителей IT-индустрии, а также экспертов из различных
|
экспертов из различных областей, чтобы поделиться своими знаниями и опытом с широкой аудиторией.
|
||||||
областей, чтобы поделиться своими знаниями и опытом с широкой
|
|
||||||
аудиторией.
|
|
||||||
</div>
|
</div>
|
||||||
<div class="text about__description-item">
|
<div class="text about__description-item">
|
||||||
Мы — команда, которая верит в силу теплой улыбки и дружеской беседы.
|
Мы — команда, которая верит в силу теплой улыбки и дружеской беседы.
|
||||||
|
|
@ -45,14 +41,13 @@
|
||||||
<div class="about__description">
|
<div class="about__description">
|
||||||
<div class="about__description-info">
|
<div class="about__description-info">
|
||||||
<div class="text about__description-item m--left">
|
<div class="text about__description-item m--left">
|
||||||
Основанное с целью переосмыслить радио через призму современного и
|
Основанное с целью переосмыслить радио через призму современного и инновационного подхода, мы стали больше,
|
||||||
инновационного подхода, мы стали больше, чем просто радиостанцией,
|
чем просто радиостанцией, мы сообщество родственных душ, которые разделяют страсть к артистизму, развитию и
|
||||||
мы сообщество родственных душ, которые разделяют страсть к
|
инновациям.
|
||||||
артистизму, развитию и инновациям.
|
|
||||||
</div>
|
</div>
|
||||||
<div class="text about__description-item">
|
<div class="text about__description-item">
|
||||||
Каждое шоу на IT-радио включает в себя актуальные темы, новости,
|
Каждое шоу на IT-радио включает в себя актуальные темы, новости, обзоры, интервью с экспертами и многое
|
||||||
обзоры, интервью с экспертами и многое другое.
|
другое.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -71,27 +66,19 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="about__history-list">
|
<div class="about__history-list">
|
||||||
<div class="about__history-item">
|
<div class="about__history-item">
|
||||||
<div class="title m--white about__history-title">
|
<div class="title m--white about__history-title">Событие кратко 1</div>
|
||||||
Событие кратко 1
|
|
||||||
</div>
|
|
||||||
<div class="about__history-date">Ноябрь 2023</div>
|
<div class="about__history-date">Ноябрь 2023</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="about__history-item">
|
<div class="about__history-item">
|
||||||
<div class="title m--white about__history-title">
|
<div class="title m--white about__history-title">Событие кратко 2</div>
|
||||||
Событие кратко 2
|
|
||||||
</div>
|
|
||||||
<div class="about__history-date">Ноябрь 2023</div>
|
<div class="about__history-date">Ноябрь 2023</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="about__history-item">
|
<div class="about__history-item">
|
||||||
<div class="title m--white about__history-title">
|
<div class="title m--white about__history-title">Событие кратко 3</div>
|
||||||
Событие кратко 3
|
|
||||||
</div>
|
|
||||||
<div class="about__history-date">Ноябрь 2023</div>
|
<div class="about__history-date">Ноябрь 2023</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="about__history-item">
|
<div class="about__history-item">
|
||||||
<div class="title m--white about__history-title">
|
<div class="title m--white about__history-title">Событие кратко 4</div>
|
||||||
Событие кратко 4
|
|
||||||
</div>
|
|
||||||
<div class="about__history-date">Ноябрь 2023</div>
|
<div class="about__history-date">Ноябрь 2023</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -10,30 +10,20 @@
|
||||||
<div class="contacts__content">
|
<div class="contacts__content">
|
||||||
<div v-if="contacts" class="contacts__info">
|
<div v-if="contacts" class="contacts__info">
|
||||||
<div v-for="(item, index) in contactsField" :key="index">
|
<div v-for="(item, index) in contactsField" :key="index">
|
||||||
<div
|
<div v-if="item.title !== dictionaryFields.socials" class="text contacts__item">
|
||||||
v-if="item.title !== dictionaryFields.socials"
|
|
||||||
class="text contacts__item"
|
|
||||||
>
|
|
||||||
<span class="title">{{ item.title }}</span>
|
<span class="title">{{ item.title }}</span>
|
||||||
{{ item.data }}
|
{{ item.data }}
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="contacts__socials">
|
<div v-else class="contacts__socials">
|
||||||
<span class="title">{{ item.title }}</span>
|
<span class="title">{{ item.title }}</span>
|
||||||
<div
|
<div v-for="(href, social) in item.data" :key="social" class="contacts__social">
|
||||||
v-for="(href, social) in item.data"
|
|
||||||
:key="social"
|
|
||||||
class="contacts__social"
|
|
||||||
>
|
|
||||||
<a :href="href" :class="['contacts__social', social]"></a>
|
<a :href="href" :class="['contacts__social', social]"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="contacts__map">
|
<div class="contacts__map">
|
||||||
<!-- <div
|
<div class="contacts__map-frame" style="position: relative; overflow: hidden">
|
||||||
class="contacts__map-frame"
|
|
||||||
style="position: relative; overflow: hidden"
|
|
||||||
>
|
|
||||||
<a
|
<a
|
||||||
href="https://yandex.ru/maps/56/chelyabinsk/?utm_medium=mapframe&utm_source=maps"
|
href="https://yandex.ru/maps/56/chelyabinsk/?utm_medium=mapframe&utm_source=maps"
|
||||||
style="color: #eee; font-size: 12px; position: absolute; top: 0px"
|
style="color: #eee; font-size: 12px; position: absolute; top: 0px"
|
||||||
|
|
@ -46,8 +36,7 @@
|
||||||
allowfullscreen="true"
|
allowfullscreen="true"
|
||||||
style="position: relative"
|
style="position: relative"
|
||||||
></iframe>
|
></iframe>
|
||||||
</div> -->
|
</div>
|
||||||
<YandexMap apiKey="e73ed16e-35ea-483b-afb4-9daac388591a" />
|
|
||||||
</div>
|
</div>
|
||||||
<FormKit
|
<FormKit
|
||||||
v-model="formData"
|
v-model="formData"
|
||||||
|
|
@ -76,12 +65,11 @@
|
||||||
<script>
|
<script>
|
||||||
import AppBreadcrumbs from '@/components/app-breadcrumbs.vue';
|
import AppBreadcrumbs from '@/components/app-breadcrumbs.vue';
|
||||||
import SupportBlock from '@/components/support-block.vue';
|
import SupportBlock from '@/components/support-block.vue';
|
||||||
import YandexMap from '@/components/ymap.vue';
|
|
||||||
import { app } from '@/services';
|
import { app } from '@/services';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'contacts',
|
name: 'contacts',
|
||||||
components: { SupportBlock, AppBreadcrumbs, YandexMap },
|
components: { SupportBlock, AppBreadcrumbs },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
formData: {},
|
formData: {},
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
<p class="text home__subtitle">
|
<p class="text home__subtitle">
|
||||||
Мы цифровое <span>онлайн радио.</span><br />
|
Мы цифровое <span>онлайн радио.</span><br />
|
||||||
Помогаем разобраться в том, что такое <span>IT.</span><br />
|
Помогаем разобраться в том, что такое <span>IT.</span><br />
|
||||||
Находимся в <span>Челябинске</span>, но вещаем на весь <span>Мир</span
|
Находимся в <span>Челябинске</span>, но вещаем на весь <span>Мир</span><br />
|
||||||
><br />
|
|
||||||
</p>
|
</p>
|
||||||
<h1 class="home__title" ref="targetTitle">
|
<h1 class="home__title" ref="targetTitle">
|
||||||
IT-Радио —
|
IT-Радио —
|
||||||
|
|
@ -30,31 +29,27 @@
|
||||||
<div class="text home__info--item">
|
<div class="text home__info--item">
|
||||||
IT-RADIO. 2023
|
IT-RADIO. 2023
|
||||||
<span>
|
<span>
|
||||||
Сегодня IT-сфера развивается настолько быстро, что следить за
|
Сегодня IT-сфера развивается настолько быстро, что следить за всеми новинками и изменениями в ней
|
||||||
всеми новинками и изменениями в ней становится все сложнее.<br /><br />
|
становится все сложнее.<br /><br />
|
||||||
Но есть способ всегда быть в курсе последних новостей и событий
|
Но есть способ всегда быть в курсе последних новостей и событий — это IT-радио.
|
||||||
— это IT-радио.
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<h2 class="h2 m--border">
|
<h2 class="h2 m--border">Открывая новые горизонты в мире технологий</h2>
|
||||||
Открывая новые горизонты в мире технологий
|
|
||||||
</h2>
|
|
||||||
<div class="text home__info--item m--circle">
|
<div class="text home__info--item m--circle">
|
||||||
<span>
|
<span>
|
||||||
IT-радио — это уникальный проект, который объединяет в себе
|
IT-радио — это уникальный проект, который объединяет в себе самых ярких представителей IT-индустрии, а
|
||||||
самых ярких представителей IT-индустрии, а также экспертов из
|
также экспертов из различных областей, чтобы поделиться своими знаниями и опытом с широкой
|
||||||
различных областей, чтобы поделиться своими знаниями и опытом с
|
аудиторией.<br /><br />
|
||||||
широкой аудиторией.<br /><br />
|
Каждое шоу на IT-радио включает в себя актуальные темы, новости, обзоры, интервью с экспертами и многое
|
||||||
Каждое шоу на IT-радио включает в себя актуальные темы, новости,
|
другое.
|
||||||
обзоры, интервью с экспертами и многое другое.
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="home__content">
|
<div class="home__content">
|
||||||
<div class="home__content--item m--one-circle">
|
<div class="home__content--item m--one-circle">
|
||||||
<span class="title">Музыка</span>
|
<span class="title">Музыка</span>
|
||||||
Нам важно создать комфортную атмосферу, которая поможет
|
Нам важно создать комфортную атмосферу, которая поможет сосредоточиться на задачах и улучшит
|
||||||
сосредоточиться на задачах и улучшит продуктивность.
|
продуктивность.
|
||||||
</div>
|
</div>
|
||||||
<div class="home__content--item m--two-circle">
|
<div class="home__content--item m--two-circle">
|
||||||
<span class="title">Подкасты</span>
|
<span class="title">Подкасты</span>
|
||||||
|
|
@ -76,9 +71,8 @@
|
||||||
<div class="home__social--description">
|
<div class="home__social--description">
|
||||||
<h2 class="h2 m--white">Соц сети</h2>
|
<h2 class="h2 m--white">Соц сети</h2>
|
||||||
<div class="text">
|
<div class="text">
|
||||||
Следите за обновлениями и новыми постами на IT Radio, чтобы быть в
|
Следите за обновлениями и новыми постами на IT Radio, чтобы быть в курсе последних новостей и событий в
|
||||||
курсе последних новостей и событий в мире IT, а также следить за
|
мире IT, а также следить за анонсами и обновлениями!
|
||||||
анонсами и обновлениями!
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="home__social--btns">
|
<div class="home__social--btns">
|
||||||
|
|
@ -125,8 +119,7 @@ export default {
|
||||||
});
|
});
|
||||||
gsap.to(this.$refs.targetTitle, {
|
gsap.to(this.$refs.targetTitle, {
|
||||||
color: 'transparent',
|
color: 'transparent',
|
||||||
backgroundImage:
|
backgroundImage: 'linear-gradient(91.17deg, #C6F1F7 -4.01%, #F983E9 36.14%, #B877FF 77.44%, #C2E9CD 106.11%)',
|
||||||
'linear-gradient(91.17deg, #C6F1F7 -4.01%, #F983E9 36.14%, #B877FF 77.44%, #C2E9CD 106.11%)',
|
|
||||||
scrollTrigger: {
|
scrollTrigger: {
|
||||||
trigger: this.$refs.targetWrapper,
|
trigger: this.$refs.targetWrapper,
|
||||||
scrub: true,
|
scrub: true,
|
||||||
|
|
|
||||||
|
|
@ -15,18 +15,9 @@
|
||||||
<h1 class="h2 playlist__title m--margin">
|
<h1 class="h2 playlist__title m--margin">
|
||||||
{{ $route.name === 'playlist-create' ? 'Новый плейлист' : playlist.name }}
|
{{ $route.name === 'playlist-create' ? 'Новый плейлист' : playlist.name }}
|
||||||
</h1>
|
</h1>
|
||||||
<button class="playlist-edit__upload" @click="handlerUploadCover">
|
<button class="playlist-edit__upload" @click="handlerUploadCover">Добавить обложку</button>
|
||||||
Добавить обложку
|
|
||||||
</button>
|
|
||||||
<div class="field__input m--hidden">
|
<div class="field__input m--hidden">
|
||||||
<input
|
<input id="cover" ref="coverInput" accept=".jpg,.png,.svg" class="input" type="file" name="logo" />
|
||||||
id="cover"
|
|
||||||
ref="coverInput"
|
|
||||||
accept=".jpg,.png,.svg"
|
|
||||||
class="input"
|
|
||||||
type="file"
|
|
||||||
name="logo"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<FormKit
|
<FormKit
|
||||||
v-model="playlist.name"
|
v-model="playlist.name"
|
||||||
|
|
@ -96,9 +87,7 @@ export default {
|
||||||
computed: {
|
computed: {
|
||||||
songsFiltered() {
|
songsFiltered() {
|
||||||
return this.songs.filter((song) => {
|
return this.songs.filter((song) => {
|
||||||
const alreadyAdd = this.playlist.song.find(
|
const alreadyAdd = this.playlist.song.find((item) => item.azura_id === song.azura_id);
|
||||||
(item) => item.azura_id === song.azura_id,
|
|
||||||
);
|
|
||||||
return !alreadyAdd;
|
return !alreadyAdd;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,7 @@
|
||||||
<div class="playlist__header">
|
<div class="playlist__header">
|
||||||
<div class="playlist__back" @click="handlerBack"></div>
|
<div class="playlist__back" @click="handlerBack"></div>
|
||||||
<div class="h2 playlist__title">{{ playlist.name }}</div>
|
<div class="h2 playlist__title">{{ playlist.name }}</div>
|
||||||
<div
|
<div class="playlist__edit" @click="next({ name: 'playlist-edit', params: { id: this.playlist.id } })"></div>
|
||||||
class="playlist__edit"
|
|
||||||
@click="
|
|
||||||
next({ name: 'playlist-edit', params: { id: this.playlist.id } })
|
|
||||||
"
|
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
<SongList :songList="playlist.song" :songAlreadyAdd="true" />
|
<SongList :songList="playlist.song" :songAlreadyAdd="true" />
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app__content profile">
|
<div class="app__content profile">
|
||||||
<template
|
<template v-if="$route.name !== 'playlist-edit' && $route.name !== 'playlist-create'">
|
||||||
v-if="
|
|
||||||
$route.name !== 'playlist-edit' && $route.name !== 'playlist-create'
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<AppBreadcrumbs
|
<AppBreadcrumbs
|
||||||
:breadcrumbs="[
|
:breadcrumbs="[
|
||||||
{ name: 'Главная', route: { name: 'home' } },
|
{ name: 'Главная', route: { name: 'home' } },
|
||||||
|
|
@ -12,9 +8,7 @@
|
||||||
]"
|
]"
|
||||||
/>
|
/>
|
||||||
<h1 class="h2 profile__title">{{ user.email }}</h1>
|
<h1 class="h2 profile__title">{{ user.email }}</h1>
|
||||||
<button class="button m--text-link" @click="showRecovery">
|
<button class="button m--text-link" @click="showRecovery">Редактировать профиль</button>
|
||||||
Редактировать профиль
|
|
||||||
</button>
|
|
||||||
<div class="profile__tabs tabs m--btns">
|
<div class="profile__tabs tabs m--btns">
|
||||||
<button
|
<button
|
||||||
v-for="item in tabsItems"
|
v-for="item in tabsItems"
|
||||||
|
|
@ -35,11 +29,7 @@
|
||||||
Загрузка данных
|
Загрузка данных
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<SongList
|
<SongList v-else :songList="userFavorite.songs" @removeSong="removeFavorites" />
|
||||||
v-else
|
|
||||||
:songList="userFavorite.songs"
|
|
||||||
@removeSong="removeFavorites"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-if="currentTabsItem === 'playlists'">
|
<template v-if="currentTabsItem === 'playlists'">
|
||||||
<template v-if="showLoaderPlaylist">
|
<template v-if="showLoaderPlaylist">
|
||||||
|
|
@ -48,11 +38,7 @@
|
||||||
Загрузка данных
|
Загрузка данных
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<PlaylistRoster
|
<PlaylistRoster v-else :list="userFavorite.playlist" @createPlaylist="createPlayList" />
|
||||||
v-else
|
|
||||||
:list="userFavorite.playlist"
|
|
||||||
@createPlaylist="createPlayList"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
<routerView v-else />
|
<routerView v-else />
|
||||||
|
|
@ -106,10 +92,7 @@ export default {
|
||||||
console.log('1');
|
console.log('1');
|
||||||
this.currentTabsItem = to?.hash.replace('#', '') || 'music';
|
this.currentTabsItem = to?.hash.replace('#', '') || 'music';
|
||||||
}
|
}
|
||||||
if (
|
if ((to?.hash !== from?.hash && to?.name === from?.name) || (!from?.name && !from?.hash)) {
|
||||||
(to?.hash !== from?.hash && to?.name === from?.name) ||
|
|
||||||
(!from?.name && !from?.hash)
|
|
||||||
) {
|
|
||||||
console.log('2');
|
console.log('2');
|
||||||
if (to.hash) {
|
if (to.hash) {
|
||||||
this.currentTabsItem = to?.hash.replace('#', '') || 'music';
|
this.currentTabsItem = to?.hash.replace('#', '') || 'music';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue