biovision 0.0.200518.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +214 -0
- data/Rakefile +22 -0
- data/app/assets/config/biovision_manifest.js +1 -0
- data/app/assets/images/biovision/components/carousel/arrow-left.svg +4 -0
- data/app/assets/images/biovision/components/carousel/arrow-right.svg +4 -0
- data/app/assets/images/biovision/icons/breadcrumb-hover.svg +1 -0
- data/app/assets/images/biovision/icons/breadcrumb.svg +1 -0
- data/app/assets/images/biovision/icons/components/contact.svg +26 -0
- data/app/assets/images/biovision/icons/components/content.svg +20 -0
- data/app/assets/images/biovision/icons/components/users.svg +21 -0
- data/app/assets/images/biovision/icons/key.svg +16 -0
- data/app/assets/images/biovision/icons/log_in.svg +15 -0
- data/app/assets/images/biovision/icons/log_out.svg +15 -0
- data/app/assets/images/biovision/icons/messages/error.svg +14 -0
- data/app/assets/images/biovision/icons/messages/info.svg +8 -0
- data/app/assets/images/biovision/icons/messages/success.svg +12 -0
- data/app/assets/images/biovision/icons/messages/warning.svg +13 -0
- data/app/assets/images/biovision/icons/settings.svg +41 -0
- data/app/assets/images/biovision/placeholders/16x9.svg +11 -0
- data/app/assets/images/biovision/placeholders/1x1.svg +11 -0
- data/app/assets/images/biovision/placeholders/3x2.svg +11 -0
- data/app/assets/images/biovision/placeholders/user.svg +15 -0
- data/app/assets/stylesheets/biovision/admin.scss +6 -0
- data/app/assets/stylesheets/biovision/admin/components.scss +59 -0
- data/app/assets/stylesheets/biovision/admin/default.scss +57 -0
- data/app/assets/stylesheets/biovision/admin/layout.scss +95 -0
- data/app/assets/stylesheets/biovision/admin/vars.scss +56 -0
- data/app/assets/stylesheets/biovision/biovision.scss +134 -0
- data/app/assets/stylesheets/biovision/biovision/messages.scss +41 -0
- data/app/assets/stylesheets/biovision/components/carousel.scss +53 -0
- data/app/assets/stylesheets/biovision/components/forms.scss +85 -0
- data/app/assets/stylesheets/biovision/components/hamburger.scss +56 -0
- data/app/assets/stylesheets/biovision/components/lists.scss +91 -0
- data/app/assets/stylesheets/biovision/default.scss +57 -0
- data/app/assets/stylesheets/biovision/themes/default_theme.scss +2 -0
- data/app/assets/stylesheets/biovision/themes/default_theme/components.scss +3 -0
- data/app/assets/stylesheets/biovision/themes/default_theme/layout.scss +44 -0
- data/app/assets/stylesheets/biovision/themes/default_theme/layout/footer.scss +0 -0
- data/app/assets/stylesheets/biovision/themes/default_theme/layout/header.scss +39 -0
- data/app/assets/stylesheets/biovision/vars.scss +53 -0
- data/app/controllers/admin/agents_controller.rb +15 -0
- data/app/controllers/admin/components_controller.rb +174 -0
- data/app/controllers/admin/index_controller.rb +11 -0
- data/app/controllers/admin/ip_addresses_controller.rb +15 -0
- data/app/controllers/admin_controller.rb +14 -0
- data/app/controllers/authentication_controller.rb +79 -0
- data/app/controllers/concerns/authentication.rb +45 -0
- data/app/controllers/index_controller.rb +8 -0
- data/app/controllers/my/confirmations_controller.rb +2 -0
- data/app/controllers/my/index_controller.rb +8 -0
- data/app/controllers/my/profiles_controller.rb +128 -0
- data/app/controllers/my/recoveries_controller.rb +2 -0
- data/app/helpers/biovision_components_helper.rb +14 -0
- data/app/helpers/users_helper.rb +11 -0
- data/app/lib/biovision/components/base_component.rb +177 -0
- data/app/lib/biovision/components/component_settings.rb +30 -0
- data/app/lib/biovision/components/privilege_handler.rb +77 -0
- data/app/lib/biovision/components/track_component.rb +9 -0
- data/app/lib/biovision/components/users/authentication.rb +47 -0
- data/app/lib/biovision/components/users/code_handler.rb +23 -0
- data/app/lib/biovision/components/users/profile_handler.rb +12 -0
- data/app/lib/biovision/components/users/registration_handler.rb +99 -0
- data/app/lib/biovision/components/users_component.rb +47 -0
- data/app/lib/biovision/notifiers/base_notifier.rb +69 -0
- data/app/lib/biovision/notifiers/socialization_notifier.rb +31 -0
- data/app/lib/biovision/notifiers/users_notifier.rb +15 -0
- data/app/models/agent.rb +35 -0
- data/app/models/biovision_component.rb +45 -0
- data/app/models/biovision_component_user.rb +21 -0
- data/app/models/browser.rb +34 -0
- data/app/models/code.rb +71 -0
- data/app/models/concerns/checkable.rb +22 -0
- data/app/models/concerns/flat_priority.rb +50 -0
- data/app/models/concerns/has_language.rb +10 -0
- data/app/models/concerns/has_owner.rb +22 -0
- data/app/models/concerns/has_simple_image.rb +18 -0
- data/app/models/concerns/has_track.rb +10 -0
- data/app/models/concerns/has_uuid.rb +12 -0
- data/app/models/concerns/meta_texts.rb +16 -0
- data/app/models/concerns/nested_priority.rb +58 -0
- data/app/models/concerns/required_unique_name.rb +16 -0
- data/app/models/concerns/required_unique_slug.rb +15 -0
- data/app/models/concerns/toggleable.rb +33 -0
- data/app/models/foreign_site.rb +34 -0
- data/app/models/foreign_user.rb +21 -0
- data/app/models/ip_address.rb +31 -0
- data/app/models/language.rb +31 -0
- data/app/models/login_attempt.rb +35 -0
- data/app/models/metric.rb +48 -0
- data/app/models/metric_value.rb +11 -0
- data/app/models/notification.rb +37 -0
- data/app/models/simple_image.rb +47 -0
- data/app/models/simple_image_tag.rb +30 -0
- data/app/models/simple_image_tag_image.rb +13 -0
- data/app/models/token.rb +96 -0
- data/app/models/user.rb +136 -0
- data/app/models/user_language.rb +15 -0
- data/app/uploaders/simple_image_uploader.rb +96 -0
- data/app/uploaders/user_image_uploader.rb +58 -0
- data/app/views/admin/agents/_nav_item.html.erb +6 -0
- data/app/views/admin/agents/entity/_in_list.html.erb +6 -0
- data/app/views/admin/agents/index.html.erb +13 -0
- data/app/views/admin/components/_list.html.erb +12 -0
- data/app/views/admin/components/entity/_links.html.erb +35 -0
- data/app/views/admin/components/entity/_section.html.erb +12 -0
- data/app/views/admin/components/index.html.erb +12 -0
- data/app/views/admin/components/links/_track.html.erb +2 -0
- data/app/views/admin/components/links/_users.html.erb +11 -0
- data/app/views/admin/components/privileges.html.erb +20 -0
- data/app/views/admin/components/privileges/_component_user.html.erb +17 -0
- data/app/views/admin/components/privileges/_links.html.erb +35 -0
- data/app/views/admin/components/privileges/_privilege_flag.html.erb +28 -0
- data/app/views/admin/components/privileges/_users.html.erb +23 -0
- data/app/views/admin/components/settings.html.erb +39 -0
- data/app/views/admin/components/settings/_new_parameter.html.erb +46 -0
- data/app/views/admin/components/settings/_parameters.html.erb +20 -0
- data/app/views/admin/components/settings/_setting.html.erb +18 -0
- data/app/views/admin/components/settings/_settings.html.erb +31 -0
- data/app/views/admin/components/show.html.erb +14 -0
- data/app/views/admin/index/index.html.erb +14 -0
- data/app/views/admin/ip_addresses/_nav_item.html.erb +6 -0
- data/app/views/admin/ip_addresses/entity/_in_list.html.erb +6 -0
- data/app/views/admin/ip_addresses/index.html.erb +13 -0
- data/app/views/admin/unauthorized.html.erb +19 -0
- data/app/views/authentication/_form.html.erb +40 -0
- data/app/views/authentication/failed.js.erb +3 -0
- data/app/views/authentication/new.html.erb +21 -0
- data/app/views/index/index.html.erb +0 -0
- data/app/views/layouts/admin.html.erb +23 -0
- data/app/views/layouts/admin/_breadcrumbs.html.erb +8 -0
- data/app/views/layouts/admin/_footer.html.erb +10 -0
- data/app/views/layouts/admin/_header.html.erb +18 -0
- data/app/views/layouts/admin/header/_logo.html.erb +3 -0
- data/app/views/layouts/application/_footer.html.erb +8 -0
- data/app/views/layouts/application/_header.html.erb +9 -0
- data/app/views/layouts/application/header/_authentication.html.erb +13 -0
- data/app/views/my/index/index.html.erb +0 -0
- data/app/views/my/profiles/closed.html.erb +12 -0
- data/app/views/my/profiles/new.html.erb +17 -0
- data/app/views/my/profiles/new/_form.html.erb +147 -0
- data/app/views/shared/_breadcrumbs.html.erb +8 -0
- data/app/views/shared/_cookie_notification.html.erb +4 -0
- data/app/views/shared/_flash_messages.html.erb +7 -0
- data/app/views/shared/_meta_texts.html.erb +31 -0
- data/app/views/shared/_nothing_found.html.erb +1 -0
- data/app/views/shared/_pagination.jbuilder +15 -0
- data/app/views/shared/admin/_list.html.erb +19 -0
- data/app/views/shared/admin/_list_with_priority.html.erb +19 -0
- data/app/views/shared/admin/_toggleable.html.erb +8 -0
- data/app/views/shared/entity/_list_of_errors.html.erb +7 -0
- data/app/views/shared/forms/errors.js.erb +5 -0
- data/config/initializers/carrierwave.rb +27 -0
- data/config/initializers/pluralization.rb +2 -0
- data/config/locales/biovision-ru.yml +90 -0
- data/config/locales/components-ru.yml +81 -0
- data/config/locales/track-ru.yml +40 -0
- data/config/locales/users-ru.yml +130 -0
- data/config/routes.rb +75 -0
- data/db/migrate/20191228000000_create_biovision_components.rb +72 -0
- data/db/migrate/20200224000000_create_track_component.rb +59 -0
- data/db/migrate/20200224000010_create_users_component.rb +189 -0
- data/db/migrate/20200404000000_create_simple_images.rb +54 -0
- data/lib/biovision.rb +9 -0
- data/lib/biovision/base_methods.rb +167 -0
- data/lib/biovision/engine.rb +40 -0
- data/lib/biovision/version.rb +5 -0
- data/lib/tasks/biovision_tasks.rake +4 -0
- metadata +392 -0
@@ -0,0 +1,13 @@
|
|
1
|
+
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<defs>
|
3
|
+
<title>Warning</title>
|
4
|
+
<style>
|
5
|
+
line, polyline { stroke: #873; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3 }
|
6
|
+
</style>
|
7
|
+
</defs>
|
8
|
+
<g>
|
9
|
+
<polyline points="16 2, 30 30, 2 30, 16 2" fill="#fd4"/>
|
10
|
+
<line x1="16" y1="12" x2="16" y2="20"/>
|
11
|
+
<circle cx="16" cy="25" r="1.5" fill="#873" />
|
12
|
+
</g>
|
13
|
+
</svg>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="160px" height="160px">
|
2
|
+
<title>Settings</title>
|
3
|
+
<defs>
|
4
|
+
<style>
|
5
|
+
line { stroke-linecap: round }
|
6
|
+
circle { stroke-width: 3 }
|
7
|
+
.a { stroke-width: 15; stroke: #aaa }
|
8
|
+
.b { stroke-width: 5; stroke: #777 }
|
9
|
+
.c { fill: #bbb; stroke: #999 }
|
10
|
+
.d { stroke-width: 3; stroke: #444; fill: #777 }
|
11
|
+
</style>
|
12
|
+
</defs>
|
13
|
+
<g>
|
14
|
+
<g class="a">
|
15
|
+
<line x1="20" y1="10" x2="20" y2="150"/>
|
16
|
+
<line x1="60" y1="10" x2="60" y2="150"/>
|
17
|
+
<line x1="100" y1="10" x2="100" y2="150"/>
|
18
|
+
</g>
|
19
|
+
<g class="b">
|
20
|
+
<line x1="20" y1="10" x2="20" y2="150"/>
|
21
|
+
<line x1="60" y1="10" x2="60" y2="150"/>
|
22
|
+
<line x1="100" y1="10" x2="100" y2="150"/>
|
23
|
+
</g>
|
24
|
+
<g class="c">
|
25
|
+
<circle cx="20" cy="55" r="15"/>
|
26
|
+
<circle cx="60" cy="115" r="15"/>
|
27
|
+
<circle cx="100" cy="30" r="15"/>
|
28
|
+
</g>
|
29
|
+
</g>
|
30
|
+
<g>
|
31
|
+
<g>
|
32
|
+
<circle cx="140" cy="20" r="12" stroke="#070" fill="#4a4"/>
|
33
|
+
<circle cx="140" cy="60" r="12" stroke="#440" fill="#773"/>
|
34
|
+
<circle cx="140" cy="100" r="12" stroke="#400" fill="#733"/>
|
35
|
+
</g>
|
36
|
+
<g class="d">
|
37
|
+
<circle cx="140" cy="140" r="12"/>
|
38
|
+
<polyline points="130,140 126,126 140,130"/>
|
39
|
+
</g>
|
40
|
+
</g>
|
41
|
+
</svg>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<svg version="1.1" viewBox="0 0 320 180" width="320px" height="180px" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<title>Image placeholder 16×9</title>
|
3
|
+
<style>
|
4
|
+
* { stroke: #ccc; fill: none; stroke-width: 3; }
|
5
|
+
</style>
|
6
|
+
<g>
|
7
|
+
<rect x="1" y="1" width="318" height="178"/>
|
8
|
+
<line x1="1.5" y1="2.25" x2="318.5" y2="177.75"/>
|
9
|
+
<line x1="1.5" y1="177.75" x2="318.5" y2="2.25"/>
|
10
|
+
</g>
|
11
|
+
</svg>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<svg version="1.1" viewBox="0 0 300 300" width="300px" height="300px" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<title>Image placeholder 1×1</title>
|
3
|
+
<style>
|
4
|
+
* { stroke: #ccc; fill: none; stroke-width: 3; }
|
5
|
+
</style>
|
6
|
+
<g>
|
7
|
+
<rect x="1" y="1" width="298" height="298"/>
|
8
|
+
<line x1="2.5" y1="2.5" x2="297.5" y2="297.5"/>
|
9
|
+
<line x1="2.5" y1="297.5" x2="297.5" y2="2.5"/>
|
10
|
+
</g>
|
11
|
+
</svg>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<svg version="1.1" viewBox="0 0 300 200" width="300px" height="200px" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<title>Image placeholder 3×2</title>
|
3
|
+
<style>
|
4
|
+
* { stroke: #ccc; fill: none; stroke-width: 3; }
|
5
|
+
</style>
|
6
|
+
<g>
|
7
|
+
<rect x="1" y="1" width="298" height="198"/>
|
8
|
+
<line x1="2.5" y1="2.5" x2="297.5" y2="197.5"/>
|
9
|
+
<line x1="2.5" y1="197.5" x2="297.5" y2="2.5"/>
|
10
|
+
</g>
|
11
|
+
</svg>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<svg version="1.1" viewBox="0 0 300 300" width="300px" height="300px" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<title>User placeholder</title>
|
3
|
+
<style>
|
4
|
+
* { stroke: #555; stroke-width: 5; }
|
5
|
+
.f { fill: #ffe }
|
6
|
+
.e { fill: #eff }
|
7
|
+
.m { fill: none }
|
8
|
+
</style>
|
9
|
+
<g>
|
10
|
+
<circle cx="150" cy="150" r="140" class="f"/>
|
11
|
+
<circle cx="100" cy="110" r="15" class="e"/>
|
12
|
+
<circle cx="200" cy="110" r="15" class="e"/>
|
13
|
+
<path d="M 75,200 A 150,200 0 0,0 225,200" class="m"/>
|
14
|
+
</g>
|
15
|
+
</svg>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500&display=swap');
|
2
|
+
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');
|
3
|
+
|
4
|
+
@import "biovision/admin/vars";
|
5
|
+
@import "biovision/biovision";
|
6
|
+
@import "biovision/admin/layout";
|
@@ -0,0 +1,59 @@
|
|
1
|
+
.biovision-component {
|
2
|
+
border-bottom: var(--border-secondary);
|
3
|
+
margin-bottom: var(--spacer-s);
|
4
|
+
padding: var(--spacer-xs);
|
5
|
+
|
6
|
+
> header {
|
7
|
+
background: no-repeat center left / 2.4rem 2.4rem;
|
8
|
+
padding-left: 3.2rem;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
.biovision-component-nav {
|
13
|
+
margin: var(--spacer-s) 0;
|
14
|
+
|
15
|
+
> a {
|
16
|
+
background: no-repeat center left / 2rem 2rem;
|
17
|
+
display: block;
|
18
|
+
line-height: 2.4rem;
|
19
|
+
margin: 0 0 0 .8rem;
|
20
|
+
padding-left: 2.4rem;
|
21
|
+
}
|
22
|
+
|
23
|
+
.settings {
|
24
|
+
background-image: image_url('biovision/icons/settings.svg');
|
25
|
+
}
|
26
|
+
|
27
|
+
.privileges {
|
28
|
+
background-image: image_url('biovision/icons/key.svg');
|
29
|
+
}
|
30
|
+
|
31
|
+
ul {
|
32
|
+
box-shadow: var(--block-shadow);
|
33
|
+
margin: var(--spacer-xxs);
|
34
|
+
max-width: 64rem;
|
35
|
+
padding: 0;
|
36
|
+
}
|
37
|
+
|
38
|
+
li {
|
39
|
+
background: var(--row-background-odd);
|
40
|
+
list-style: none;
|
41
|
+
margin: 0;
|
42
|
+
padding: var(--spacer-xs);
|
43
|
+
position: relative;
|
44
|
+
|
45
|
+
&:nth-last-of-type(even) {
|
46
|
+
background: var(--row-background-even);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
.biovision-component-settings {
|
52
|
+
.fields {
|
53
|
+
margin-bottom: var(--spacer-s);
|
54
|
+
|
55
|
+
> div {
|
56
|
+
margin-bottom: 0;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
$font-family-main: "Roboto", sans-serif !default;
|
2
|
+
$font-family-heading: "Exo 2", sans-serif !default;
|
3
|
+
|
4
|
+
$font-size-xxxl: 4.5rem !default;
|
5
|
+
$font-size-xxl: 3.6rem !default;
|
6
|
+
$font-size-xl: 3.2rem !default;
|
7
|
+
$font-size-large: 2.4rem !default;
|
8
|
+
$font-size-increased: 1.8rem !default;
|
9
|
+
$font-size-normal: 1.6rem !default;
|
10
|
+
$font-size-decreased: 1.4rem !default;
|
11
|
+
$font-size-small: 1.2rem !default;
|
12
|
+
$font-size-xs: 1rem !default;
|
13
|
+
|
14
|
+
$spacer-s: 1.6rem !default;
|
15
|
+
$spacer-xxxs: .2rem !default;
|
16
|
+
$spacer-xxs: #{$spacer-s / 4} !default;
|
17
|
+
$spacer-xs: #{$spacer-s / 2} !default;
|
18
|
+
$spacer-m: #{$spacer-s * 2} !default;
|
19
|
+
$spacer-l: #{$spacer-s * 3} !default;
|
20
|
+
$spacer-xl: #{$spacer-s * 4} !default;
|
21
|
+
$spacer-xxl: #{$spacer-s * 6} !default;
|
22
|
+
|
23
|
+
$content-width: 120rem !default;
|
24
|
+
$content-width-min: 32rem !default;
|
25
|
+
|
26
|
+
$row-background-even: hsl(0, 0%, 95%) !default;
|
27
|
+
$row-background-odd: hsl(0, 0%, 98%) !default;
|
28
|
+
|
29
|
+
$text-color-heading: #000 !default;
|
30
|
+
$text-color-primary: rgb(28, 28, 28) !default;
|
31
|
+
$text-color-secondary: #777 !default;
|
32
|
+
|
33
|
+
$text-color-inverted-primary: #fff !default;
|
34
|
+
$text-color-inverted-secondary: #ccc !default;
|
35
|
+
$text-color-inverted-heading: #eee !default;
|
36
|
+
|
37
|
+
$block-shadow: .2rem .2rem .4rem .2rem rgba(0, 0, 0, .125) !default;
|
38
|
+
|
39
|
+
$border-color-primary: rgb(192, 192, 192) !default;
|
40
|
+
$border-color-secondary: rgb(230, 230, 230) !default;
|
41
|
+
$border-primary: .1rem solid $border-color-primary !default;
|
42
|
+
$border-secondary: .1rem solid $border-color-secondary !default;
|
43
|
+
|
44
|
+
$background-body: #f4f4f4 linear-gradient(to top, #f4f4f4, #dfdedc) no-repeat center / cover !default;
|
45
|
+
$background-header: #fff !default;
|
46
|
+
$background-main: #fff !default;
|
47
|
+
$background-footer: #fff !default;
|
48
|
+
|
49
|
+
$link-color: rgb(20, 127, 255) !default;
|
50
|
+
$link-color-visited: rgb(20, 77, 250) !default;
|
51
|
+
$link-color-active: rgb(255, 77, 20) !default;
|
52
|
+
$link-color-hover: rgb(255, 77, 20) !default;
|
53
|
+
|
54
|
+
$input-border: hsl(0, 0%, 75%) !default;
|
55
|
+
$input-border-focus: hsl(0, 0%, 50%) !default;
|
56
|
+
$input-border-invalid: hsl(0, 75%, 50%) !default;
|
57
|
+
$input-border-invalid-focus: hsl(0, 50%, 50%) !default;
|
@@ -0,0 +1,95 @@
|
|
1
|
+
//* { outline: solid pink 1px }
|
2
|
+
|
3
|
+
html {
|
4
|
+
background: linear-gradient(to bottom, #dedfe3 2%, #aeb3b9 95%) fixed, radial-gradient(farthest-corner at 33% 100%, rgba(255, 255, 255, .5) 0%, rgba(0, 0, 0, .5) 100%) fixed;
|
5
|
+
background-blend-mode: screen;
|
6
|
+
height: 100%;
|
7
|
+
}
|
8
|
+
|
9
|
+
body {
|
10
|
+
background: #fff;
|
11
|
+
display: flex;
|
12
|
+
flex-direction: column;
|
13
|
+
font-weight: 300;
|
14
|
+
height: 100%;
|
15
|
+
margin: 0 auto;
|
16
|
+
max-width: var(--content-width);
|
17
|
+
}
|
18
|
+
|
19
|
+
a {
|
20
|
+
font-weight: 400;
|
21
|
+
}
|
22
|
+
|
23
|
+
h1 {
|
24
|
+
font-size: var(--font-size-xxl);
|
25
|
+
font-weight: 500;
|
26
|
+
margin-bottom: var(--spacer-xs);
|
27
|
+
}
|
28
|
+
|
29
|
+
h2 {
|
30
|
+
font-size: var(--font-size-xl);
|
31
|
+
font-weight: 500;
|
32
|
+
margin-bottom: var(--spacer-xxs);
|
33
|
+
}
|
34
|
+
|
35
|
+
#main {
|
36
|
+
padding: var(--spacer-xs);
|
37
|
+
width: 100%;
|
38
|
+
}
|
39
|
+
|
40
|
+
.main-header {
|
41
|
+
align-items: center;
|
42
|
+
border-bottom: var(--border-primary);
|
43
|
+
display: flex;
|
44
|
+
flex-wrap: wrap;
|
45
|
+
padding: var(--spacer-xs);
|
46
|
+
|
47
|
+
nav {
|
48
|
+
margin: 0 0 0 auto;
|
49
|
+
}
|
50
|
+
|
51
|
+
ul {
|
52
|
+
align-items: center;
|
53
|
+
display: flex;
|
54
|
+
flex-wrap: wrap;
|
55
|
+
list-style: none;
|
56
|
+
margin: 0;
|
57
|
+
padding: 0;
|
58
|
+
}
|
59
|
+
|
60
|
+
li {
|
61
|
+
padding: 0 var(--spacer-xxs);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
.main-footer {
|
66
|
+
align-items: center;
|
67
|
+
border-top: var(--border-primary);
|
68
|
+
color: var(--text-color-secondary);
|
69
|
+
display: flex;
|
70
|
+
flex-wrap: wrap;
|
71
|
+
font-size: var(--font-size-decreased);
|
72
|
+
justify-content: space-between;
|
73
|
+
margin: auto 0 0 0;
|
74
|
+
padding: var(--spacer-xs);
|
75
|
+
}
|
76
|
+
|
77
|
+
.breadcrumbs {
|
78
|
+
margin-bottom: var(--spacer-xs);
|
79
|
+
|
80
|
+
a {
|
81
|
+
background: image_url('biovision/icons/breadcrumb.svg') no-repeat bottom .1rem right / .6rem 1.2rem;
|
82
|
+
padding-right: 1rem;
|
83
|
+
transition: background .25s;
|
84
|
+
|
85
|
+
&:active,
|
86
|
+
&:focus,
|
87
|
+
&:hover {
|
88
|
+
background-image: image_url('biovision/icons/breadcrumb-hover.svg');
|
89
|
+
}
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
@import "biovision/components/forms";
|
94
|
+
@import "biovision/components/lists";
|
95
|
+
@import "biovision/admin/components";
|
@@ -0,0 +1,56 @@
|
|
1
|
+
@import "biovision/admin/default";
|
2
|
+
|
3
|
+
:root {
|
4
|
+
--font-size-xxxl: #{$font-size-xxxl};
|
5
|
+
--font-size-xxl: #{$font-size-xxl};
|
6
|
+
--font-size-xl: #{$font-size-xl};
|
7
|
+
--font-size-large: #{$font-size-large};
|
8
|
+
--font-size-increased: #{$font-size-increased};
|
9
|
+
--font-size-normal: #{$font-size-normal};
|
10
|
+
--font-size-decreased: #{$font-size-decreased};
|
11
|
+
--font-size-small: #{$font-size-small};
|
12
|
+
--font-size-xs: #{$font-size-xs};
|
13
|
+
|
14
|
+
--font-family-main: #{$font-family-main};
|
15
|
+
--font-family-heading: #{$font-family-heading};
|
16
|
+
|
17
|
+
--spacer-s: #{$spacer-s};
|
18
|
+
--spacer-xxxs: .2rem;
|
19
|
+
--spacer-xxs: calc(var(--spacer-s) / 4);
|
20
|
+
--spacer-xs: calc(var(--spacer-s) / 2);
|
21
|
+
--spacer-m: calc(var(--spacer-s) * 2);
|
22
|
+
--spacer-l: calc(var(--spacer-s) * 3);
|
23
|
+
--spacer-xl: calc(var(--spacer-s) * 4);
|
24
|
+
--spacer-xxl: calc(var(--spacer-s) * 6);
|
25
|
+
|
26
|
+
--text-color-primary: #{$text-color-primary};
|
27
|
+
--text-color-secondary: #{$text-color-secondary};
|
28
|
+
--text-color-heading: #{$text-color-heading};
|
29
|
+
|
30
|
+
--text-color-inverted-primary: #{$text-color-inverted-primary};
|
31
|
+
--text-color-inverted-secondary: #{$text-color-inverted-secondary};
|
32
|
+
--text-color-inverted-heading: #{$text-color-inverted-heading};
|
33
|
+
|
34
|
+
--border-color-primary: #{$border-color-primary};
|
35
|
+
--border-color-secondary: #{$border-color-secondary};
|
36
|
+
--border-primary: #{$border-primary};
|
37
|
+
--border-secondary: #{$border-secondary};
|
38
|
+
|
39
|
+
--block-shadow: #{$block-shadow};
|
40
|
+
|
41
|
+
--link-color: #{$link-color};
|
42
|
+
--link-color-visited: #{$link-color-visited};
|
43
|
+
--link-color-active: #{$link-color-active};
|
44
|
+
--link-color-hover: #{$link-color-hover};
|
45
|
+
|
46
|
+
--content-width: #{$content-width};
|
47
|
+
--content-width-min: #{$content-width-min};
|
48
|
+
|
49
|
+
--input-border: #{$input-border};
|
50
|
+
--input-border-focus: #{$input-border-focus};
|
51
|
+
--input-border-invalid: #{$input-border-invalid};
|
52
|
+
--input-border-invalid-focus: #{$input-border-invalid-focus};
|
53
|
+
|
54
|
+
--row-background-even: #{$row-background-even};
|
55
|
+
--row-background-odd: #{$row-background-odd};
|
56
|
+
}
|
@@ -0,0 +1,134 @@
|
|
1
|
+
*,
|
2
|
+
::after,
|
3
|
+
::before {
|
4
|
+
box-sizing: border-box;
|
5
|
+
}
|
6
|
+
|
7
|
+
html {
|
8
|
+
color: var(--text-color-primary);
|
9
|
+
font: 400 10px var(--font-family-main);
|
10
|
+
margin: 0;
|
11
|
+
padding: 0;
|
12
|
+
-webkit-text-size-adjust: none;
|
13
|
+
-moz-text-size-adjust: none;
|
14
|
+
-ms-text-size-adjust: none;
|
15
|
+
}
|
16
|
+
|
17
|
+
body {
|
18
|
+
font-size: var(--font-size-normal);
|
19
|
+
margin: 0;
|
20
|
+
min-width: var(--content-width-min);
|
21
|
+
padding: 0;
|
22
|
+
}
|
23
|
+
|
24
|
+
h1,
|
25
|
+
h2,
|
26
|
+
h3,
|
27
|
+
h4,
|
28
|
+
h5,
|
29
|
+
h6 {
|
30
|
+
font-family: var(--font-family-heading);
|
31
|
+
margin: 0;
|
32
|
+
}
|
33
|
+
|
34
|
+
a {
|
35
|
+
color: var(--link-color);
|
36
|
+
text-decoration: none;
|
37
|
+
transition: color .125s;
|
38
|
+
|
39
|
+
&:hover {
|
40
|
+
color: var(--link-color-hover);
|
41
|
+
text-decoration: underline;
|
42
|
+
}
|
43
|
+
|
44
|
+
&:active {
|
45
|
+
color: var(--link-color-active);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
figure {
|
50
|
+
margin: 0;
|
51
|
+
}
|
52
|
+
|
53
|
+
article {
|
54
|
+
position: relative;
|
55
|
+
}
|
56
|
+
|
57
|
+
button,
|
58
|
+
input,
|
59
|
+
textarea {
|
60
|
+
font-size: inherit;
|
61
|
+
}
|
62
|
+
|
63
|
+
.content-wrapper {
|
64
|
+
margin-left: auto;
|
65
|
+
margin-right: auto;
|
66
|
+
max-width: var(--content-width);
|
67
|
+
}
|
68
|
+
|
69
|
+
.hidden,
|
70
|
+
[hidden] {
|
71
|
+
display: none !important;
|
72
|
+
}
|
73
|
+
|
74
|
+
.visually-hidden {
|
75
|
+
border: none;
|
76
|
+
clip: rect(0 0 0 0);
|
77
|
+
height: auto;
|
78
|
+
left: -10000rem;
|
79
|
+
margin: 0;
|
80
|
+
opacity: .05;
|
81
|
+
overflow: hidden;
|
82
|
+
padding: 0;
|
83
|
+
pointer-events: none;
|
84
|
+
position: absolute;
|
85
|
+
white-space: nowrap;
|
86
|
+
width: 1px;
|
87
|
+
}
|
88
|
+
|
89
|
+
.proportional-container {
|
90
|
+
padding: 0;
|
91
|
+
position: relative;
|
92
|
+
|
93
|
+
> * {
|
94
|
+
bottom: 0;
|
95
|
+
display: block;
|
96
|
+
height: 100%;
|
97
|
+
left: 0;
|
98
|
+
position: absolute;
|
99
|
+
right: 0;
|
100
|
+
top: 0;
|
101
|
+
width: 100%;
|
102
|
+
}
|
103
|
+
|
104
|
+
&::before {
|
105
|
+
content: '\A';
|
106
|
+
display: block;
|
107
|
+
}
|
108
|
+
|
109
|
+
&.r-1x1::before {
|
110
|
+
padding-top: 100%;
|
111
|
+
}
|
112
|
+
|
113
|
+
&.r-5x4::before {
|
114
|
+
padding-top: 80%;
|
115
|
+
}
|
116
|
+
|
117
|
+
&.r-4x3::before {
|
118
|
+
padding-top: 75%;
|
119
|
+
}
|
120
|
+
|
121
|
+
&.r-3x2::before {
|
122
|
+
padding-top: 66.67%;
|
123
|
+
}
|
124
|
+
|
125
|
+
&.r-16x9::before {
|
126
|
+
padding-top: 56.25%;
|
127
|
+
}
|
128
|
+
|
129
|
+
&.r-2x1::before {
|
130
|
+
padding-top: 50%;
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
@import "biovision/biovision/messages";
|