├── countbook ├── __init__.py ├── asgi.py ├── routing.py ├── wsgi.py ├── urls.py └── settings.py ├── website ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0003_auto_20171008_1613.py │ ├── 0005_auto_20171008_1824.py │ ├── 0006_auto_20171008_2048.py │ ├── 0004_auto_20171008_1621.py │ ├── 0002_auto_20171006_1312.py │ └── 0001_initial.py ├── tests.py ├── apps.py ├── models.py ├── urls.py ├── consumers.py ├── templates │ └── index.html └── views.py ├── .gitignore ├── screenshots ├── 0.png ├── 1.png └── 2.png ├── static └── website │ ├── bulma-0.6.0 │ ├── sass │ │ ├── grid │ │ │ ├── _all.sass │ │ │ ├── tiles.sass │ │ │ └── columns.sass │ │ ├── layout │ │ │ ├── _all.sass │ │ │ ├── footer.sass │ │ │ ├── section.sass │ │ │ └── hero.sass │ │ ├── base │ │ │ ├── _all.sass │ │ │ ├── minireset.sass │ │ │ ├── generic.sass │ │ │ └── helpers.sass │ │ ├── utilities │ │ │ ├── animations.sass │ │ │ ├── _all.sass │ │ │ ├── functions.sass │ │ │ ├── controls.sass │ │ │ ├── initial-variables.sass │ │ │ ├── derived-variables.sass │ │ │ └── mixins.sass │ │ ├── components │ │ │ ├── _all.sass │ │ │ ├── media.sass │ │ │ ├── menu.sass │ │ │ ├── card.sass │ │ │ ├── level.sass │ │ │ ├── breadcrumb.sass │ │ │ ├── dropdown.sass │ │ │ ├── message.sass │ │ │ ├── panel.sass │ │ │ ├── modal.sass │ │ │ ├── pagination.sass │ │ │ ├── tabs.sass │ │ │ └── navbar.sass │ │ └── elements │ │ │ ├── _all.sass │ │ │ ├── icon.sass │ │ │ ├── container.sass │ │ │ ├── box.sass │ │ │ ├── other.sass │ │ │ ├── image.sass │ │ │ ├── notification.sass │ │ │ ├── progress.sass │ │ │ ├── title.sass │ │ │ ├── tag.sass │ │ │ ├── table.sass │ │ │ ├── content.sass │ │ │ ├── button.sass │ │ │ └── form.sass │ ├── bulma.sass │ ├── LICENSE │ ├── package.json │ ├── README.md │ └── CHANGELOG.md │ ├── font-awesome-4.7.0 │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── less │ │ ├── fixed-width.less │ │ ├── screen-reader.less │ │ ├── larger.less │ │ ├── list.less │ │ ├── core.less │ │ ├── stacked.less │ │ ├── font-awesome.less │ │ ├── bordered-pulled.less │ │ ├── rotated-flipped.less │ │ ├── path.less │ │ ├── animated.less │ │ └── mixins.less │ ├── scss │ │ ├── _fixed-width.scss │ │ ├── _screen-reader.scss │ │ ├── _larger.scss │ │ ├── _list.scss │ │ ├── _core.scss │ │ ├── font-awesome.scss │ │ ├── _stacked.scss │ │ ├── _bordered-pulled.scss │ │ ├── _rotated-flipped.scss │ │ ├── _path.scss │ │ ├── _animated.scss │ │ └── _mixins.scss │ └── HELP-US-OUT.txt │ ├── main.css │ ├── main.js │ ├── tabs.js │ ├── popup.js │ ├── reconnecting-websocket.min.js │ ├── today_tab.js │ └── stats_tab.js ├── README.md ├── server_configs ├── supervisord.conf └── nginx.conf └── manage.py /countbook/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /website/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /website/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.swp 3 | __pycache__ 4 | venv/ 5 | db.sqlite3 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /website/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /screenshots/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sergei-bondarenko/countbook/master/screenshots/0.png -------------------------------------------------------------------------------- /screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sergei-bondarenko/countbook/master/screenshots/1.png -------------------------------------------------------------------------------- /screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sergei-bondarenko/countbook/master/screenshots/2.png -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/grid/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "columns.sass" 4 | @import "tiles.sass" 5 | -------------------------------------------------------------------------------- /website/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class WebsiteConfig(AppConfig): 5 | name = 'website' 6 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/layout/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "hero.sass" 4 | @import "section.sass" 5 | @import "footer.sass" 6 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/base/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "minireset.sass" 4 | @import "generic.sass" 5 | @import "helpers.sass" 6 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/utilities/animations.sass: -------------------------------------------------------------------------------- 1 | @keyframes spinAround 2 | from 3 | transform: rotate(0deg) 4 | to 5 | transform: rotate(359deg) 6 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sergei-bondarenko/countbook/master/static/website/font-awesome-4.7.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /countbook/asgi.py: -------------------------------------------------------------------------------- 1 | import os 2 | from channels.asgi import get_channel_layer 3 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "countbook.settings") 4 | channel_layer = get_channel_layer() 5 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sergei-bondarenko/countbook/master/static/website/font-awesome-4.7.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sergei-bondarenko/countbook/master/static/website/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sergei-bondarenko/countbook/master/static/website/font-awesome-4.7.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sergei-bondarenko/countbook/master/static/website/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/layout/footer.sass: -------------------------------------------------------------------------------- 1 | $footer-background-color: $background !default 2 | 3 | .footer 4 | background-color: $footer-background-color 5 | padding: 3rem 1.5rem 6rem 6 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only(); } 5 | .sr-only-focusable { @include sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /static/website/main.css: -------------------------------------------------------------------------------- 1 | .tabs-content { 2 | padding-left: 24px; 3 | padding-bottom: 24px; 4 | } 5 | 6 | .field { 7 | margin-top: 10px; 8 | } 9 | 10 | .month { 11 | padding-bottom: 10px; 12 | } 13 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/utilities/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "initial-variables.sass" 4 | @import "functions.sass" 5 | @import "derived-variables.sass" 6 | @import "animations.sass" 7 | @import "mixins.sass" 8 | @import "controls.sass" 9 | -------------------------------------------------------------------------------- /countbook/routing.py: -------------------------------------------------------------------------------- 1 | from channels.routing import route 2 | from website.consumers import ws_message, ws_connect, ws_disconnect 3 | 4 | channel_routing = [ 5 | route('websocket.receive', ws_message), 6 | route('websocket.connect', ws_connect), 7 | route('websocket.disconnect', ws_disconnect), 8 | ] 9 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/bulma.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | /*! bulma.io v0.6.0 | MIT License | github.com/jgthms/bulma */ 3 | @import "sass/utilities/_all" 4 | @import "sass/base/_all" 5 | @import "sass/elements/_all" 6 | @import "sass/components/_all" 7 | @import "sass/grid/_all" 8 | @import "sass/layout/_all" 9 | -------------------------------------------------------------------------------- /website/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | class Operation(models.Model): 4 | name = models.TextField() 5 | show = models.BooleanField() 6 | 7 | class Record(models.Model): 8 | date = models.DateField(auto_now_add=True) 9 | operation = models.ForeignKey(Operation, on_delete=models.CASCADE) 10 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/components/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "breadcrumb.sass" 4 | @import "card.sass" 5 | @import "dropdown.sass" 6 | @import "level.sass" 7 | @import "media.sass" 8 | @import "menu.sass" 9 | @import "message.sass" 10 | @import "modal.sass" 11 | @import "navbar.sass" 12 | @import "pagination.sass" 13 | @import "panel.sass" 14 | @import "tabs.sass" 15 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/elements/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "box.sass" 4 | @import "button.sass" 5 | @import "container.sass" 6 | @import "content.sass" 7 | @import "form.sass" 8 | @import "icon.sass" 9 | @import "image.sass" 10 | @import "notification.sass" 11 | @import "progress.sass" 12 | @import "table.sass" 13 | @import "tag.sass" 14 | @import "title.sass" 15 | 16 | @import "other.sass" 17 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/layout/section.sass: -------------------------------------------------------------------------------- 1 | $section-padding: 3rem 1.5rem !default 2 | $section-padding-medium: 9rem 1.5rem !default 3 | $section-padding-large: 18rem 1.5rem !default 4 | 5 | .section 6 | padding: $section-padding 7 | // Responsiveness 8 | +desktop 9 | // Sizes 10 | &.is-medium 11 | padding: $section-padding-medium 12 | &.is-large 13 | padding: $section-padding-large 14 | -------------------------------------------------------------------------------- /website/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from django.views.generic.base import TemplateView 3 | 4 | #from . import views 5 | 6 | app_name = 'website' 7 | urlpatterns = [ 8 | url(r'^$', TemplateView.as_view(template_name='index.html'), name='index'), 9 | # url(r'^$', views.IndexView.as_view(), name='index'), 10 | # url(r'^append_operation/$', views.append_operation, name='append_operation'), 11 | ] 12 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /countbook/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for countbook project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "countbook.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # countbook 2 | 3 | ## Description 4 | 5 | A simple one-page site for recording different daily statistics, e.g. product sales, performed operations at work, etc. 6 | 7 | ## Technology stack 8 | 9 | - Debian 10 | - Nginx 11 | - Supervisord 12 | - Daphne 13 | - Django + IPC channel backend 14 | - SQLite 15 | - Vue.js 16 | - ReconnectingWebSocket 17 | - Bulma + Font Awesome + Chart.js 18 | 19 | ## Screenshots 20 | 21 |  22 |  23 |  24 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /static/website/main.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | let ws = new ReconnectingWebSocket('ws://' + window.location.host); 4 | let bus = new Vue(); 5 | 6 | new Vue({ 7 | el: '#root', 8 | 9 | mounted: function() { 10 | ws.onmessage = (e) => { 11 | let response = JSON.parse(e.data); 12 | bus.$emit('websocket_message', response); 13 | } 14 | ws.onopen = () => { 15 | bus.$emit('websocket_ready'); 16 | } 17 | if (ws.readyState == WebSocket.OPEN) ws.onopen(); 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | @import "screen-reader"; 19 | -------------------------------------------------------------------------------- /website/migrations/0003_auto_20171008_1613.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11.6 on 2017-10-08 13:13 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('website', '0002_auto_20171006_1312'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='record', 17 | name='date', 18 | field=models.DateField(), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /website/migrations/0005_auto_20171008_1824.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11.6 on 2017-10-08 15:24 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('website', '0004_auto_20171008_1621'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameField( 16 | model_name='record', 17 | old_name='operation_id', 18 | new_name='operation', 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /website/migrations/0006_auto_20171008_2048.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11.6 on 2017-10-08 17:48 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('website', '0005_auto_20171008_1824'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameField( 16 | model_name='operation', 17 | old_name='operation_name', 18 | new_name='name', 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /website/migrations/0004_auto_20171008_1621.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11.6 on 2017-10-08 13:21 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('website', '0003_auto_20171008_1613'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='record', 17 | name='date', 18 | field=models.DateField(auto_now_add=True), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | @import "screen-reader.less"; 19 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/elements/icon.sass: -------------------------------------------------------------------------------- 1 | $icon-dimensions: 1.5rem !default 2 | $icon-dimensions-small: 1rem !default 3 | $icon-dimensions-medium: 2rem !default 4 | $icon-dimensions-large: 3rem !default 5 | 6 | .icon 7 | align-items: center 8 | display: inline-flex 9 | justify-content: center 10 | height: $icon-dimensions 11 | width: $icon-dimensions 12 | // Sizes 13 | &.is-small 14 | height: $icon-dimensions-small 15 | width: $icon-dimensions-small 16 | &.is-medium 17 | height: $icon-dimensions-medium 18 | width: $icon-dimensions-medium 19 | &.is-large 20 | height: $icon-dimensions-large 21 | width: $icon-dimensions-large 22 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/elements/container.sass: -------------------------------------------------------------------------------- 1 | .container 2 | margin: 0 auto 3 | position: relative 4 | +from($desktop) 5 | max-width: $desktop - (2 * $gap) 6 | width: $desktop - (2 * $gap) 7 | &.is-fluid 8 | margin-left: $gap 9 | margin-right: $gap 10 | max-width: none 11 | width: auto 12 | +until($widescreen) 13 | &.is-widescreen 14 | max-width: $widescreen - (2 * $gap) 15 | width: auto 16 | +until($fullhd) 17 | &.is-fullhd 18 | max-width: $fullhd - (2 * $gap) 19 | width: auto 20 | +from($widescreen) 21 | max-width: $widescreen - (2 * $gap) 22 | width: $widescreen - (2 * $gap) 23 | +from($fullhd) 24 | max-width: $fullhd - (2 * $gap) 25 | width: $fullhd - (2 * $gap) -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /website/migrations/0002_auto_20171006_1312.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11.5 on 2017-10-06 10:12 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('website', '0001_initial'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameModel( 16 | old_name='Operations', 17 | new_name='Operation', 18 | ), 19 | migrations.RenameModel( 20 | old_name='Records', 21 | new_name='Record', 22 | ), 23 | migrations.RenameField( 24 | model_name='record', 25 | old_name='operation', 26 | new_name='operation_id', 27 | ), 28 | ] 29 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/elements/box.sass: -------------------------------------------------------------------------------- 1 | $box-color: $text !default 2 | $box-background-color: $white !default 3 | $box-radius: $radius-large !default 4 | $box-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default 5 | $box-padding: 1.25rem !default 6 | 7 | $box-link-hover-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px $link !default 8 | $box-link-active-shadow: inset 0 1px 2px rgba($black, 0.2), 0 0 0 1px $link !default 9 | 10 | .box 11 | +block 12 | background-color: $box-background-color 13 | border-radius: $box-radius 14 | box-shadow: $box-shadow 15 | color: $box-color 16 | display: block 17 | padding: $box-padding 18 | 19 | a.box 20 | &:hover, 21 | &:focus 22 | box-shadow: $box-link-hover-shadow 23 | &:active 24 | box-shadow: $box-link-active-shadow 25 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/elements/other.sass: -------------------------------------------------------------------------------- 1 | .block 2 | +block 3 | 4 | .delete 5 | +delete 6 | 7 | .heading 8 | display: block 9 | font-size: 11px 10 | letter-spacing: 1px 11 | margin-bottom: 5px 12 | text-transform: uppercase 13 | 14 | .highlight 15 | +block 16 | font-weight: $weight-normal 17 | max-width: 100% 18 | overflow: hidden 19 | padding: 0 20 | pre 21 | overflow: auto 22 | max-width: 100% 23 | 24 | .loader 25 | +loader 26 | 27 | .number 28 | align-items: center 29 | background-color: $background 30 | border-radius: 290486px 31 | display: inline-flex 32 | font-size: $size-medium 33 | height: 2em 34 | justify-content: center 35 | margin-right: 1.5rem 36 | min-width: 2.5em 37 | padding: 0.25rem 0.5rem 38 | text-align: center 39 | vertical-align: top 40 | -------------------------------------------------------------------------------- /countbook/urls.py: -------------------------------------------------------------------------------- 1 | """countbook URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/1.11/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.conf.urls import url, include 14 | 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) 15 | """ 16 | from django.conf.urls import include, url 17 | 18 | urlpatterns = [ 19 | url(r'^', include('website.urls')), 20 | ] 21 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/elements/image.sass: -------------------------------------------------------------------------------- 1 | $dimensions: 16 24 32 48 64 96 128 !default 2 | 3 | .image 4 | display: block 5 | position: relative 6 | img 7 | display: block 8 | height: auto 9 | width: 100% 10 | // Ratio 11 | &.is-square, 12 | &.is-1by1, 13 | &.is-4by3, 14 | &.is-3by2, 15 | &.is-16by9, 16 | &.is-2by1 17 | img 18 | +overlay 19 | height: 100% 20 | width: 100% 21 | &.is-square, 22 | &.is-1by1 23 | padding-top: 100% 24 | &.is-4by3 25 | padding-top: 75% 26 | &.is-3by2 27 | padding-top: 66.6666% 28 | &.is-16by9 29 | padding-top: 56.25% 30 | &.is-2by1 31 | padding-top: 50% 32 | // Sizes 33 | @each $dimension in $dimensions 34 | &.is-#{$dimension}x#{$dimension} 35 | height: $dimension * 1px 36 | width: $dimension * 1px 37 | -------------------------------------------------------------------------------- /server_configs/supervisord.conf: -------------------------------------------------------------------------------- 1 | [program:Daphne] 2 | environment=PATH="/path/to/venv/bin" 3 | command=/path/to/venv/bin/daphne -p 8080 -b 0.0.0.0 countbook.asgi:channel_layer 4 | directory=/path/to/project 5 | autostart=true 6 | autorestart=true 7 | redirect_stderr=true 8 | stdout_logfile=/var/log/supervisor/daphne.out.log 9 | logfile_maxbytes=50MB 10 | logfile_backups=10 11 | loglevel=debug 12 | user=countbook 13 | 14 | [program:Worker] 15 | environment=PATH="/path/to/venv/bin" 16 | command=/path/to/venv/bin/python manage.py runworker 17 | directory=/path/to/project 18 | process_name=%(program_name)s_%(process_num)02d 19 | numprocs=2 20 | autostart=true 21 | autorestart=true 22 | redirect_stderr=true 23 | stdout_logfile=/var/log/supervisor/workers.out.log 24 | logfile_maxbytes=50MB 25 | logfile_backups=10 26 | loglevel=debug 27 | user=countbook 28 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/grid/tiles.sass: -------------------------------------------------------------------------------- 1 | .tile 2 | align-items: stretch 3 | display: block 4 | flex-basis: 0 5 | flex-grow: 1 6 | flex-shrink: 1 7 | min-height: min-content 8 | // Modifiers 9 | &.is-ancestor 10 | margin-left: -0.75rem 11 | margin-right: -0.75rem 12 | margin-top: -0.75rem 13 | &:last-child 14 | margin-bottom: -0.75rem 15 | &:not(:last-child) 16 | margin-bottom: 0.75rem 17 | &.is-child 18 | margin: 0 !important 19 | &.is-parent 20 | padding: 0.75rem 21 | &.is-vertical 22 | flex-direction: column 23 | & > .tile.is-child:not(:last-child) 24 | margin-bottom: 1.5rem !important 25 | // Responsiveness 26 | +tablet 27 | &:not(.is-child) 28 | display: flex 29 | @for $i from 1 through 12 30 | &.is-#{$i} 31 | flex: none 32 | width: ($i / 12) * 100% 33 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "countbook.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError: 10 | # The above import may fail for some other reason. Ensure that the 11 | # issue is really that Django is missing to avoid masking other 12 | # exceptions on Python 2. 13 | try: 14 | import django 15 | except ImportError: 16 | raise ImportError( 17 | "Couldn't import Django. Are you sure it's installed and " 18 | "available on your PYTHONPATH environment variable? Did you " 19 | "forget to activate a virtual environment?" 20 | ) 21 | raise 22 | execute_from_command_line(sys.argv) 23 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /static/website/font-awesome-4.7.0/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/elements/notification.sass: -------------------------------------------------------------------------------- 1 | $notification-background-color: $background !default 2 | $notification-radius: $radius !default 3 | $notification-padding: 1.25rem 2.5rem 1.25rem 1.5rem !default 4 | 5 | .notification 6 | +block 7 | background-color: $notification-background-color 8 | border-radius: $notification-radius 9 | padding: $notification-padding 10 | position: relative 11 | a:not(.button) 12 | color: currentColor 13 | text-decoration: underline 14 | strong 15 | color: currentColor 16 | code, 17 | pre 18 | background: $white 19 | pre code 20 | background: transparent 21 | & > .delete 22 | position: absolute 23 | right: 0.5em 24 | top: 0.5em 25 | .title, 26 | .subtitle, 27 | .content 28 | color: currentColor 29 | // Colors 30 | @each $name, $pair in $colors 31 | $color: nth($pair, 1) 32 | $color-invert: nth($pair, 2) 33 | &.is-#{$name} 34 | background-color: $color 35 | color: $color-invert 36 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/utilities/functions.sass: -------------------------------------------------------------------------------- 1 | @function powerNumber($number, $exp) 2 | $value: 1 3 | @if $exp > 0 4 | @for $i from 1 through $exp 5 | $value: $value * $number 6 | @else if $exp < 0 7 | @for $i from 1 through -$exp 8 | $value: $value / $number 9 | @return $value 10 | 11 | @function colorLuminance($color) 12 | $color-rgb: ('red': red($color),'green': green($color),'blue': blue($color)) 13 | @each $name, $value in $color-rgb 14 | $adjusted: 0 15 | $value: $value / 255 16 | @if $value < 0.03928 17 | $value: $value / 12.92 18 | @else 19 | $value: ($value + .055) / 1.055 20 | $value: powerNumber($value, 2) 21 | $color-rgb: map-merge($color-rgb, ($name: $value)) 22 | @return (map-get($color-rgb, 'red') * .2126) + (map-get($color-rgb, 'green') * .7152) + (map-get($color-rgb, 'blue') * .0722) 23 | 24 | @function findColorInvert($color) 25 | @if (colorLuminance($color) > 0.55) 26 | @return rgba(#000, 0.7) 27 | @else 28 | @return #fff 29 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/components/media.sass: -------------------------------------------------------------------------------- 1 | .media 2 | align-items: flex-start 3 | display: flex 4 | text-align: left 5 | .content:not(:last-child) 6 | margin-bottom: 0.75rem 7 | .media 8 | border-top: 1px solid rgba($border, 0.5) 9 | display: flex 10 | padding-top: 0.75rem 11 | .content:not(:last-child), 12 | .control:not(:last-child) 13 | margin-bottom: 0.5rem 14 | .media 15 | padding-top: 0.5rem 16 | & + .media 17 | margin-top: 0.5rem 18 | & + .media 19 | border-top: 1px solid rgba($border, 0.5) 20 | margin-top: 1rem 21 | padding-top: 1rem 22 | // Sizes 23 | &.is-large 24 | & + .media 25 | margin-top: 1.5rem 26 | padding-top: 1.5rem 27 | 28 | .media-left, 29 | .media-right 30 | flex-basis: auto 31 | flex-grow: 0 32 | flex-shrink: 0 33 | 34 | .media-left 35 | margin-right: 1rem 36 | 37 | .media-right 38 | margin-left: 1rem 39 | 40 | .media-content 41 | flex-basis: auto 42 | flex-grow: 1 43 | flex-shrink: 1 44 | text-align: left 45 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/elements/progress.sass: -------------------------------------------------------------------------------- 1 | $progress-bar-background-color: $border !default 2 | $progress-value-background-color: $text !default 3 | 4 | .progress 5 | +block 6 | -moz-appearance: none 7 | -webkit-appearance: none 8 | border: none 9 | border-radius: 290486px 10 | display: block 11 | height: $size-normal 12 | overflow: hidden 13 | padding: 0 14 | width: 100% 15 | &::-webkit-progress-bar 16 | background-color: $progress-bar-background-color 17 | &::-webkit-progress-value 18 | background-color: $progress-value-background-color 19 | &::-moz-progress-bar 20 | background-color: $progress-value-background-color 21 | // Colors 22 | @each $name, $pair in $colors 23 | $color: nth($pair, 1) 24 | &.is-#{$name} 25 | &::-webkit-progress-value 26 | background-color: $color 27 | &::-moz-progress-bar 28 | background-color: $color 29 | // Sizes 30 | &.is-small 31 | height: $size-small 32 | &.is-medium 33 | height: $size-medium 34 | &.is-large 35 | height: $size-large 36 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/base/minireset.sass: -------------------------------------------------------------------------------- 1 | /*! minireset.css v0.0.2 | MIT License | github.com/jgthms/minireset.css */ 2 | // Blocks 3 | html, 4 | body, 5 | p, 6 | ol, 7 | ul, 8 | li, 9 | dl, 10 | dt, 11 | dd, 12 | blockquote, 13 | figure, 14 | fieldset, 15 | legend, 16 | textarea, 17 | pre, 18 | iframe, 19 | hr, 20 | h1, 21 | h2, 22 | h3, 23 | h4, 24 | h5, 25 | h6 26 | margin: 0 27 | padding: 0 28 | 29 | // Headings 30 | h1, 31 | h2, 32 | h3, 33 | h4, 34 | h5, 35 | h6 36 | font-size: 100% 37 | font-weight: normal 38 | 39 | // List 40 | ul 41 | list-style: none 42 | 43 | // Form 44 | button, 45 | input, 46 | select, 47 | textarea 48 | margin: 0 49 | 50 | // Box sizing 51 | html 52 | box-sizing: border-box 53 | 54 | * 55 | box-sizing: inherit 56 | &:before, 57 | &:after 58 | box-sizing: inherit 59 | 60 | // Media 61 | img, 62 | embed, 63 | object, 64 | audio, 65 | video 66 | max-width: 100% 67 | 68 | // Iframe 69 | iframe 70 | border: 0 71 | 72 | // Table 73 | table 74 | border-collapse: collapse 75 | border-spacing: 0 76 | 77 | td, 78 | th 79 | padding: 0 80 | text-align: left 81 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Jeremy Thomas 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /website/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11.5 on 2017-10-06 09:01 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | import django.db.models.deletion 7 | 8 | 9 | class Migration(migrations.Migration): 10 | 11 | initial = True 12 | 13 | dependencies = [ 14 | ] 15 | 16 | operations = [ 17 | migrations.CreateModel( 18 | name='Operations', 19 | fields=[ 20 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 21 | ('operation_name', models.TextField()), 22 | ('show', models.BooleanField()), 23 | ], 24 | ), 25 | migrations.CreateModel( 26 | name='Records', 27 | fields=[ 28 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 29 | ('date', models.DateField(auto_now_add=True)), 30 | ('operation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='website.Operations')), 31 | ], 32 | ), 33 | ] 34 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/utilities/controls.sass: -------------------------------------------------------------------------------- 1 | $control-radius: $radius !default 2 | $control-radius-small: $radius-small !default 3 | 4 | $control-padding-vertical: calc(0.375em - 1px) !default 5 | $control-padding-horizontal: calc(0.625em - 1px) !default 6 | 7 | =control 8 | -moz-appearance: none 9 | -webkit-appearance: none 10 | align-items: center 11 | border: 1px solid transparent 12 | border-radius: $control-radius 13 | box-shadow: none 14 | display: inline-flex 15 | font-size: $size-normal 16 | height: 2.25em 17 | justify-content: flex-start 18 | line-height: 1.5 19 | padding-bottom: $control-padding-vertical 20 | padding-left: $control-padding-horizontal 21 | padding-right: $control-padding-horizontal 22 | padding-top: $control-padding-vertical 23 | position: relative 24 | vertical-align: top 25 | // States 26 | &:focus, 27 | &.is-focused, 28 | &:active, 29 | &.is-active 30 | outline: none 31 | &[disabled] 32 | cursor: not-allowed 33 | 34 | // The controls sizes use mixins so they can be used at different breakpoints 35 | =control-small 36 | border-radius: $control-radius-small 37 | font-size: $size-small 38 | =control-medium 39 | font-size: $size-medium 40 | =control-large 41 | font-size: $size-large 42 | -------------------------------------------------------------------------------- /static/website/bulma-0.6.0/sass/components/menu.sass: -------------------------------------------------------------------------------- 1 | $menu-item-color: $text !default 2 | $menu-item-radius: $radius-small !default 3 | $menu-item-hover-color: $text-strong !default 4 | $menu-item-hover-background-color: $background !default 5 | $menu-item-active-color: $link-invert !default 6 | $menu-item-active-background-color: $link !default 7 | 8 | $menu-list-border-left: 1px solid $border !default 9 | 10 | $menu-label-color: $text-light !default 11 | 12 | .menu 13 | font-size: $size-normal 14 | // Sizes 15 | &.is-small 16 | font-size: $size-small 17 | &.is-medium 18 | font-size: $size-medium 19 | &.is-large 20 | font-size: $size-large 21 | 22 | .menu-list 23 | line-height: 1.25 24 | a 25 | border-radius: $menu-item-radius 26 | color: $menu-item-color 27 | display: block 28 | padding: 0.5em 0.75em 29 | &:hover 30 | background-color: $menu-item-hover-background-color 31 | color: $menu-item-hover-color 32 | // Modifiers 33 | &.is-active 34 | background-color: $menu-item-active-background-color 35 | color: $menu-item-active-color 36 | li 37 | ul 38 | border-left: $menu-list-border-left 39 | margin: 0.75em 40 | padding-left: 0.75em 41 | 42 | .menu-label 43 | color: $menu-label-color 44 | font-size: 0.75em 45 | letter-spacing: 0.1em 46 | text-transform: uppercase 47 | &:not(:first-child) 48 | margin-top: 1em 49 | &:not(:last-child) 50 | margin-bottom: 1em 51 | -------------------------------------------------------------------------------- /website/consumers.py: -------------------------------------------------------------------------------- 1 | import json 2 | from channels import Group 3 | from .views import * 4 | 5 | def ws_message(message): 6 | request = json.loads(message.content['text']) 7 | if request['type'] == 'append_record': 8 | append_record(request['params']['id']) 9 | Group('general').send({ 10 | 'text': get_day() 11 | }) 12 | elif request['type'] == 'get_day': 13 | year = request['params']['year'] 14 | month = request['params']['month'] 15 | day = request['params']['day'] 16 | Group('general').send({ 17 | 'text': get_day(year, month, day) 18 | }) 19 | elif request['type'] == 'append_operation': 20 | append_operation(request['params']['name']) 21 | Group('general').send({ 22 | 'text': get_day() 23 | }) 24 | elif request['type'] == 'get_month': 25 | year = request['params']['year'] 26 | month = request['params']['month'] 27 | message.reply_channel.send({ 28 | 'text': get_month(year, month) 29 | }) 30 | elif request['type'] == 'del_operation': 31 | del_operation(request['params']['id']) 32 | Group('general').send({ 33 | 'text': get_day() 34 | }) 35 | 36 | def ws_connect(message): 37 | message.reply_channel.send({'accept': True}) 38 | Group('general').add(message.reply_channel) 39 | 40 | def ws_disconnect(message): 41 | Group('general').discard(message.reply_channel) 42 | -------------------------------------------------------------------------------- /static/website/tabs.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | Vue.component('tabs', { 4 | template: ` 5 |
(( title ))
10 | 11 |
13 |
14 | ## Quick install
15 |
16 | Bulma is constantly in development! Try it out now:
17 |
18 | ### NPM
19 |
20 | ```sh
21 | npm install bulma
22 | ```
23 | **or**
24 |
25 | ### Yarn
26 |
27 | ```sh
28 | yarn add bulma
29 | ```
30 |
31 | ### Bower
32 |
33 | ```sh
34 | bower install bulma
35 | ```
36 |
37 | ### CDN
38 |
39 | [https://cdnjs.com/libraries/bulma](https://cdnjs.com/libraries/bulma)
40 |
41 | Feel free to raise an issue or submit a pull request.
42 |
43 | ## CSS only
44 |
45 | Bulma is a **CSS** framework. As such, the sole output is a single CSS file: [bulma.css](https://github.com/jgthms/bulma/blob/master/css/bulma.css)
46 |
47 | You can either use that file, "out of the box", or download the Sass source files to customize the [variables](http://bulma.io/documentation/overview/variables/).
48 |
49 | There is **no** JavaScript included. People generally want to use their own JS implementation (and usually already have one). Bulma can be considered "environment agnostic": it's just the style layer on top of the logic.
50 |
51 | ## Browser Support
52 |
53 | Bulma uses [autoprefixer](https://github.com/postcss/autoprefixer) to make (most) Flexbox features compatible with earlier browser versions. According to [Can I use](http://caniuse.com/#feat=flexbox), Bulma is compatible with **recent** versions of:
54 |
55 | * Chrome
56 | * Edge
57 | * Firefox
58 | * Opera
59 | * Safari
60 |
61 | Internet Explorer (10+) is only partially supported.
62 |
63 | ## Documentation
64 |
65 | The documentation resides in the [docs](docs) directory, and is built with the Ruby-based [Jekyll](https://jekyllrb.com/) tool.
66 |
67 | Browse the [online documentation here.](http://bulma.io/documentation/overview/start/)
68 |
69 | ## Related projects
70 |
71 | | Project | Description |
72 | |------------------------------------------------------------------------------------|--------------------------------------------------------------------|
73 | | [Bulma with Attribute Modules](https://github.com/j5bot/bulma-attribute-selectors) | Adds support for attribute-based selectors. |
74 | | [Bulma with Rails](https://github.com/joshuajansen/bulma-rails) | Integrates Bulma with the rails asset pipeline |
75 | | [Vue Admin](https://github.com/vue-bulma/vue-admin) | Vue Admin framework powered by Bulma |
76 | | [Bulmaswatch](https://github.com/jenil/bulmaswatch) | Free themes for Bulma |
77 | | [Goldfish](https://github.com/Caiyeon/goldfish) | Vault UI with Bulma, Golang, and Vue Admin |
78 | | [ember-bulma](https://github.com/open-tux/ember-bulma) | Ember addon providing a collection of UI components for Bulma |
79 | | [Bloomer](https://bloomer.js.org) | A set of React components for Bulma |
80 | | [Re-bulma](https://github.com/bokuweb/re-bulma) | Bulma components build with React |
81 | | [React-bulma](https://github.com/kulakowka/react-bulma) | React.js components for Bulma |
82 | | [Buefy](https://buefy.github.io) | Lightweight UI components for Vue.js based on Bulma |
83 | | [vue-bulma-components](https://github.com/vouill/vue-bulma-components) | Bulma components for Vue.js with straightforward syntax |
84 | | [BulmaJS](https://github.com/VizuaaLOG/BulmaJS) | Javascript integration for Bulma. Written in ES6 with a data-* API |
85 | | [Bulma.styl](https://github.com/log1x/bulma.styl) | 1:1 Stylus translation of Bulma |
86 | | [elm-bulma-classes](https://github.com/danielnarey/elm-bulma-classes) | Bulma prepared for usage with ELM |
87 | | [Bulma Customizer](https://bulma-customizer.bstash.io/) | Bulma Customizer – Create your own **bespoke** Bulma build |
88 | | [Fulma](https://mangelmaxime.github.io/Fulma/) | Wrapper around Bulma for [fable-react](https://github.com/fable-compiler/fable-react) |
89 |
90 | ## Copyright and license
91 |
92 | Code copyright 2017 Jeremy Thomas. Code released under [the MIT license](https://github.com/jgthms/bulma/blob/master/LICENSE).
93 |
--------------------------------------------------------------------------------
/static/website/bulma-0.6.0/sass/elements/button.sass:
--------------------------------------------------------------------------------
1 | $button-color: $grey-darker !default
2 | $button-background-color: $white !default
3 | $button-border-color: $grey-lighter !default
4 |
5 | $button-hover-color: $link-hover !default
6 | $button-hover-border-color: $link-hover-border !default
7 |
8 | $button-focus-color: $link-focus !default
9 | $button-focus-border-color: $link-focus-border !default
10 | $button-focus-box-shadow-size: 0 0 0 0.125em !default
11 | $button-focus-box-shadow-color: rgba($link, 0.25) !default
12 |
13 | $button-active-color: $link-active !default
14 | $button-active-border-color: $link-active-border !default
15 |
16 | $button-text-color: $text !default
17 | $button-text-hover-background-color: $background !default
18 | $button-text-hover-color: $text-strong !default
19 |
20 | $button-disabled-background-color: $white !default
21 | $button-disabled-border-color: $grey-lighter !default
22 | $button-disabled-shadow: none !default
23 | $button-disabled-opacity: 0.5 !default
24 |
25 | $button-static-color: $grey !default
26 | $button-static-background-color: $white-ter !default
27 | $button-static-border-color: $grey-lighter !default
28 |
29 | // The button sizes use mixins so they can be used at different breakpoints
30 | =button-small
31 | border-radius: $radius-small
32 | font-size: $size-small
33 | =button-medium
34 | font-size: $size-medium
35 | =button-large
36 | font-size: $size-large
37 |
38 | .button
39 | +control
40 | +unselectable
41 | background-color: $button-background-color
42 | border-color: $button-border-color
43 | color: $button-color
44 | cursor: pointer
45 | justify-content: center
46 | padding-left: 0.75em
47 | padding-right: 0.75em
48 | text-align: center
49 | white-space: nowrap
50 | strong
51 | color: inherit
52 | .icon
53 | &,
54 | &.is-small,
55 | &.is-medium,
56 | &.is-large
57 | height: 1.5em
58 | width: 1.5em
59 | &:first-child:not(:last-child)
60 | margin-left: calc(-0.375em - 1px)
61 | margin-right: 0.1875em
62 | &:last-child:not(:first-child)
63 | margin-left: 0.1875em
64 | margin-right: calc(-0.375em - 1px)
65 | &:first-child:last-child
66 | margin-left: calc(-0.375em - 1px)
67 | margin-right: calc(-0.375em - 1px)
68 | // States
69 | &:hover,
70 | &.is-hovered
71 | border-color: $button-hover-border-color
72 | color: $button-hover-color
73 | &:focus,
74 | &.is-focused
75 | border-color: $button-focus-border-color
76 | color: $button-focus-color
77 | &:not(:active)
78 | box-shadow: $button-focus-box-shadow-size $button-focus-box-shadow-color
79 | &:active,
80 | &.is-active
81 | border-color: $button-active-border-color
82 | color: $button-active-color
83 | // Colors
84 | &.is-text
85 | background-color: transparent
86 | border-color: transparent
87 | color: $button-text-color
88 | text-decoration: underline
89 | &:hover,
90 | &.is-hovered,
91 | &:focus,
92 | &.is-focused
93 | background-color: $button-text-hover-background-color
94 | color: $button-text-hover-color
95 | &:active,
96 | &.is-active
97 | background-color: darken($button-text-hover-background-color, 5%)
98 | color: $button-text-hover-color
99 | &[disabled]
100 | background-color: transparent
101 | border-color: transparent
102 | box-shadow: none
103 | @each $name, $pair in $colors
104 | $color: nth($pair, 1)
105 | $color-invert: nth($pair, 2)
106 | &.is-#{$name}
107 | background-color: $color
108 | border-color: transparent
109 | color: $color-invert
110 | &:hover,
111 | &.is-hovered
112 | background-color: darken($color, 2.5%)
113 | border-color: transparent
114 | color: $color-invert
115 | &:focus,
116 | &.is-focused
117 | border-color: transparent
118 | color: $color-invert
119 | &:not(:active)
120 | box-shadow: $button-focus-box-shadow-size rgba($color, 0.25)
121 | &:active,
122 | &.is-active
123 | background-color: darken($color, 5%)
124 | border-color: transparent
125 | color: $color-invert
126 | &[disabled]
127 | background-color: $color
128 | border-color: transparent
129 | box-shadow: none
130 | &.is-inverted
131 | background-color: $color-invert
132 | color: $color
133 | &:hover
134 | background-color: darken($color-invert, 5%)
135 | &[disabled]
136 | background-color: $color-invert
137 | border-color: transparent
138 | box-shadow: none
139 | color: $color
140 | &.is-loading
141 | &:after
142 | border-color: transparent transparent $color-invert $color-invert !important
143 | &.is-outlined
144 | background-color: transparent
145 | border-color: $color
146 | color: $color
147 | &:hover,
148 | &:focus
149 | background-color: $color
150 | border-color: $color
151 | color: $color-invert
152 | &.is-loading
153 | &:after
154 | border-color: transparent transparent $color $color !important
155 | &[disabled]
156 | background-color: transparent
157 | border-color: $color
158 | box-shadow: none
159 | color: $color
160 | &.is-inverted.is-outlined
161 | background-color: transparent
162 | border-color: $color-invert
163 | color: $color-invert
164 | &:hover,
165 | &:focus
166 | background-color: $color-invert
167 | color: $color
168 | &[disabled]
169 | background-color: transparent
170 | border-color: $color-invert
171 | box-shadow: none
172 | color: $color-invert
173 | // Sizes
174 | &.is-small
175 | +button-small
176 | &.is-medium
177 | +button-medium
178 | &.is-large
179 | +button-large
180 | // Modifiers
181 | &[disabled]
182 | background-color: $button-disabled-background-color
183 | border-color: $button-disabled-border-color
184 | box-shadow: $button-disabled-shadow
185 | opacity: $button-disabled-opacity
186 | &.is-fullwidth
187 | display: flex
188 | width: 100%
189 | &.is-loading
190 | color: transparent !important
191 | pointer-events: none
192 | &:after
193 | +loader
194 | +center(1em)
195 | position: absolute !important
196 | &.is-static
197 | background-color: $button-static-background-color
198 | border-color: $button-static-border-color
199 | color: $button-static-color
200 | box-shadow: none
201 | pointer-events: none
202 |
--------------------------------------------------------------------------------
/static/website/bulma-0.6.0/sass/grid/columns.sass:
--------------------------------------------------------------------------------
1 | $column-gap: 0.75rem !default
2 |
3 | .column
4 | display: block
5 | flex-basis: 0
6 | flex-grow: 1
7 | flex-shrink: 1
8 | padding: $column-gap
9 | .columns.is-mobile > &.is-narrow
10 | flex: none
11 | .columns.is-mobile > &.is-full
12 | flex: none
13 | width: 100%
14 | .columns.is-mobile > &.is-three-quarters
15 | flex: none
16 | width: 75%
17 | .columns.is-mobile > &.is-two-thirds
18 | flex: none
19 | width: 66.6666%
20 | .columns.is-mobile > &.is-half
21 | flex: none
22 | width: 50%
23 | .columns.is-mobile > &.is-one-third
24 | flex: none
25 | width: 33.3333%
26 | .columns.is-mobile > &.is-one-quarter
27 | flex: none
28 | width: 25%
29 | .columns.is-mobile > &.is-offset-three-quarters
30 | margin-left: 75%
31 | .columns.is-mobile > &.is-offset-two-thirds
32 | margin-left: 66.6666%
33 | .columns.is-mobile > &.is-offset-half
34 | margin-left: 50%
35 | .columns.is-mobile > &.is-offset-one-third
36 | margin-left: 33.3333%
37 | .columns.is-mobile > &.is-offset-one-quarter
38 | margin-left: 25%
39 | @for $i from 1 through 12
40 | .columns.is-mobile > &.is-#{$i}
41 | flex: none
42 | width: ($i / 12) * 100%
43 | .columns.is-mobile > &.is-offset-#{$i}
44 | margin-left: ($i / 12) * 100%
45 | +mobile
46 | &.is-narrow-mobile
47 | flex: none
48 | &.is-full-mobile
49 | flex: none
50 | width: 100%
51 | &.is-three-quarters-mobile
52 | flex: none
53 | width: 75%
54 | &.is-two-thirds-mobile
55 | flex: none
56 | width: 66.6666%
57 | &.is-half-mobile
58 | flex: none
59 | width: 50%
60 | &.is-one-third-mobile
61 | flex: none
62 | width: 33.3333%
63 | &.is-one-quarter-mobile
64 | flex: none
65 | width: 25%
66 | &.is-offset-three-quarters-mobile
67 | margin-left: 75%
68 | &.is-offset-two-thirds-mobile
69 | margin-left: 66.6666%
70 | &.is-offset-half-mobile
71 | margin-left: 50%
72 | &.is-offset-one-third-mobile
73 | margin-left: 33.3333%
74 | &.is-offset-one-quarter-mobile
75 | margin-left: 25%
76 | @for $i from 1 through 12
77 | &.is-#{$i}-mobile
78 | flex: none
79 | width: ($i / 12) * 100%
80 | &.is-offset-#{$i}-mobile
81 | margin-left: ($i / 12) * 100%
82 | +tablet
83 | &.is-narrow,
84 | &.is-narrow-tablet
85 | flex: none
86 | &.is-full,
87 | &.is-full-tablet
88 | flex: none
89 | width: 100%
90 | &.is-three-quarters,
91 | &.is-three-quarters-tablet
92 | flex: none
93 | width: 75%
94 | &.is-two-thirds,
95 | &.is-two-thirds-tablet
96 | flex: none
97 | width: 66.6666%
98 | &.is-half,
99 | &.is-half-tablet
100 | flex: none
101 | width: 50%
102 | &.is-one-third,
103 | &.is-one-third-tablet
104 | flex: none
105 | width: 33.3333%
106 | &.is-one-quarter,
107 | &.is-one-quarter-tablet
108 | flex: none
109 | width: 25%
110 | &.is-offset-three-quarters,
111 | &.is-offset-three-quarters-tablet
112 | margin-left: 75%
113 | &.is-offset-two-thirds,
114 | &.is-offset-two-thirds-tablet
115 | margin-left: 66.6666%
116 | &.is-offset-half,
117 | &.is-offset-half-tablet
118 | margin-left: 50%
119 | &.is-offset-one-third,
120 | &.is-offset-one-third-tablet
121 | margin-left: 33.3333%
122 | &.is-offset-one-quarter,
123 | &.is-offset-one-quarter-tablet
124 | margin-left: 25%
125 | @for $i from 1 through 12
126 | &.is-#{$i},
127 | &.is-#{$i}-tablet
128 | flex: none
129 | width: ($i / 12) * 100%
130 | &.is-offset-#{$i},
131 | &.is-offset-#{$i}-tablet
132 | margin-left: ($i / 12) * 100%
133 | +touch
134 | &.is-narrow-touch
135 | flex: none
136 | &.is-full-touch
137 | flex: none
138 | width: 100%
139 | &.is-three-quarters-touch
140 | flex: none
141 | width: 75%
142 | &.is-two-thirds-touch
143 | flex: none
144 | width: 66.6666%
145 | &.is-half-touch
146 | flex: none
147 | width: 50%
148 | &.is-one-third-touch
149 | flex: none
150 | width: 33.3333%
151 | &.is-one-quarter-touch
152 | flex: none
153 | width: 25%
154 | &.is-offset-three-quarters-touch
155 | margin-left: 75%
156 | &.is-offset-two-thirds-touch
157 | margin-left: 66.6666%
158 | &.is-offset-half-touch
159 | margin-left: 50%
160 | &.is-offset-one-third-touch
161 | margin-left: 33.3333%
162 | &.is-offset-one-quarter-touch
163 | margin-left: 25%
164 | @for $i from 1 through 12
165 | &.is-#{$i}-touch
166 | flex: none
167 | width: ($i / 12) * 100%
168 | &.is-offset-#{$i}-touch
169 | margin-left: ($i / 12) * 100%
170 | +desktop
171 | &.is-narrow-desktop
172 | flex: none
173 | &.is-full-desktop
174 | flex: none
175 | width: 100%
176 | &.is-three-quarters-desktop
177 | flex: none
178 | width: 75%
179 | &.is-two-thirds-desktop
180 | flex: none
181 | width: 66.6666%
182 | &.is-half-desktop
183 | flex: none
184 | width: 50%
185 | &.is-one-third-desktop
186 | flex: none
187 | width: 33.3333%
188 | &.is-one-quarter-desktop
189 | flex: none
190 | width: 25%
191 | &.is-offset-three-quarters-desktop
192 | margin-left: 75%
193 | &.is-offset-two-thirds-desktop
194 | margin-left: 66.6666%
195 | &.is-offset-half-desktop
196 | margin-left: 50%
197 | &.is-offset-one-third-desktop
198 | margin-left: 33.3333%
199 | &.is-offset-one-quarter-desktop
200 | margin-left: 25%
201 | @for $i from 1 through 12
202 | &.is-#{$i}-desktop
203 | flex: none
204 | width: ($i / 12) * 100%
205 | &.is-offset-#{$i}-desktop
206 | margin-left: ($i / 12) * 100%
207 | +widescreen
208 | &.is-narrow-widescreen
209 | flex: none
210 | &.is-full-widescreen
211 | flex: none
212 | width: 100%
213 | &.is-three-quarters-widescreen
214 | flex: none
215 | width: 75%
216 | &.is-two-thirds-widescreen
217 | flex: none
218 | width: 66.6666%
219 | &.is-half-widescreen
220 | flex: none
221 | width: 50%
222 | &.is-one-third-widescreen
223 | flex: none
224 | width: 33.3333%
225 | &.is-one-quarter-widescreen
226 | flex: none
227 | width: 25%
228 | &.is-offset-three-quarters-widescreen
229 | margin-left: 75%
230 | &.is-offset-two-thirds-widescreen
231 | margin-left: 66.6666%
232 | &.is-offset-half-widescreen
233 | margin-left: 50%
234 | &.is-offset-one-third-widescreen
235 | margin-left: 33.3333%
236 | &.is-offset-one-quarter-widescreen
237 | margin-left: 25%
238 | @for $i from 1 through 12
239 | &.is-#{$i}-widescreen
240 | flex: none
241 | width: ($i / 12) * 100%
242 | &.is-offset-#{$i}-widescreen
243 | margin-left: ($i / 12) * 100%
244 | +fullhd
245 | &.is-narrow-fullhd
246 | flex: none
247 | &.is-full-fullhd
248 | flex: none
249 | width: 100%
250 | &.is-three-quarters-fullhd
251 | flex: none
252 | width: 75%
253 | &.is-two-thirds-fullhd
254 | flex: none
255 | width: 66.6666%
256 | &.is-half-fullhd
257 | flex: none
258 | width: 50%
259 | &.is-one-third-fullhd
260 | flex: none
261 | width: 33.3333%
262 | &.is-one-quarter-fullhd
263 | flex: none
264 | width: 25%
265 | &.is-offset-three-quarters-fullhd
266 | margin-left: 75%
267 | &.is-offset-two-thirds-fullhd
268 | margin-left: 66.6666%
269 | &.is-offset-half-fullhd
270 | margin-left: 50%
271 | &.is-offset-one-third-fullhd
272 | margin-left: 33.3333%
273 | &.is-offset-one-quarter-fullhd
274 | margin-left: 25%
275 | @for $i from 1 through 12
276 | &.is-#{$i}-fullhd
277 | flex: none
278 | width: ($i / 12) * 100%
279 | &.is-offset-#{$i}-fullhd
280 | margin-left: ($i / 12) * 100%
281 |
282 | .columns
283 | margin-left: (-$column-gap)
284 | margin-right: (-$column-gap)
285 | margin-top: (-$column-gap)
286 | &:last-child
287 | margin-bottom: (-$column-gap)
288 | &:not(:last-child)
289 | margin-bottom: calc(1.5rem - #{$column-gap})
290 | // Modifiers
291 | &.is-centered
292 | justify-content: center
293 | &.is-gapless
294 | margin-left: 0
295 | margin-right: 0
296 | margin-top: 0
297 | & > .column
298 | margin: 0
299 | padding: 0 !important
300 | &:not(:last-child)
301 | margin-bottom: 1.5rem
302 | &:last-child
303 | margin-bottom: 0
304 | &.is-mobile
305 | display: flex
306 | &.is-multiline
307 | flex-wrap: wrap
308 | &.is-vcentered
309 | align-items: center
310 | // Responsiveness
311 | +tablet
312 | &:not(.is-desktop)
313 | display: flex
314 | +desktop
315 | // Modifiers
316 | &.is-desktop
317 | display: flex
318 |
319 | .columns.is-variable
320 | --columnGap: 0.75rem
321 | margin-left: calc(-1 * var(--columnGap))
322 | margin-right: calc(-1 * var(--columnGap))
323 | .column
324 | padding-left: var(--columnGap)
325 | padding-right: var(--columnGap)
326 | @for $i from 0 through 8
327 | &.is-#{$i}
328 | --columnGap: $i * 0.25rem
329 |
--------------------------------------------------------------------------------
/static/website/bulma-0.6.0/sass/components/navbar.sass:
--------------------------------------------------------------------------------
1 | $navbar-background-color: $white !default
2 | $navbar-height: 3.25rem !default
3 |
4 | $navbar-item-color: $grey-dark !default
5 | $navbar-item-hover-color: $black !default
6 | $navbar-item-hover-background-color: $background !default
7 | $navbar-item-active-color: $black !default
8 | $navbar-item-active-background-color: transparent !default
9 | $navbar-item-img-max-height: 1.75rem !default
10 |
11 | $navbar-tab-hover-background-color: transparent !default
12 | $navbar-tab-hover-border-bottom-color: $link !default
13 | $navbar-tab-active-color: $link !default
14 | $navbar-tab-active-background-color: transparent !default
15 | $navbar-tab-active-border-bottom-color: $link !default
16 | $navbar-tab-active-border-bottom-style: solid !default
17 | $navbar-tab-active-border-bottom-width: 3px !default
18 |
19 | $navbar-dropdown-background-color: $white !default
20 | $navbar-dropdown-border-top: 1px solid $border !default
21 | $navbar-dropdown-offset: -4px !default
22 | $navbar-dropdown-arrow: $link !default
23 | $navbar-dropdown-radius: $radius-large !default
24 | $navbar-dropdown-z: 20 !default
25 |
26 | $navbar-dropdown-boxed-radius: $radius-large !default
27 | $navbar-dropdown-boxed-shadow: 0 8px 8px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default
28 |
29 | $navbar-dropdown-item-hover-color: $black !default
30 | $navbar-dropdown-item-hover-background-color: $background !default
31 | $navbar-dropdown-item-active-color: $link !default
32 | $navbar-dropdown-item-active-background-color: $background !default
33 |
34 | $navbar-divider-background-color: $border !default
35 |
36 | .navbar
37 | background-color: $navbar-background-color
38 | min-height: $navbar-height
39 | position: relative
40 | @each $name, $pair in $colors
41 | $color: nth($pair, 1)
42 | $color-invert: nth($pair, 2)
43 | &.is-#{$name}
44 | background-color: $color
45 | color: $color-invert
46 | .navbar-brand
47 | & > .navbar-item,
48 | .navbar-link
49 | color: $color-invert
50 | & > a.navbar-item,
51 | .navbar-link
52 | &:hover,
53 | &.is-active
54 | background-color: darken($color, 5%)
55 | color: $color-invert
56 | .navbar-link
57 | &::after
58 | border-color: $color-invert
59 | +desktop
60 | .navbar-start,
61 | .navbar-end
62 | & > .navbar-item,
63 | .navbar-link
64 | color: $color-invert
65 | & > a.navbar-item,
66 | .navbar-link
67 | &:hover,
68 | &.is-active
69 | background-color: darken($color, 5%)
70 | color: $color-invert
71 | .navbar-link
72 | &::after
73 | border-color: $color-invert
74 | .navbar-item.has-dropdown:hover .navbar-link,
75 | .navbar-item.has-dropdown.is-active .navbar-link
76 | background-color: darken($color, 5%)
77 | color: $color-invert
78 | .navbar-dropdown
79 | a.navbar-item
80 | &.is-active
81 | background-color: $color
82 | color: $color-invert
83 | & > .container
84 | align-items: stretch
85 | display: flex
86 | min-height: $navbar-height
87 | width: 100%
88 | &.has-shadow
89 | box-shadow: 0 2px 3px rgba($black, 0.1)
90 |
91 | .navbar-brand,
92 | .navbar-tabs
93 | align-items: stretch
94 | display: flex
95 | flex-shrink: 0
96 | min-height: $navbar-height
97 |
98 | .navbar-tabs
99 | +overflow-touch
100 | max-width: 100vw
101 | overflow-x: auto
102 | overflow-y: hidden
103 |
104 | .navbar-burger
105 | +hamburger($navbar-height)
106 | margin-left: auto
107 |
108 | .navbar-menu
109 | display: none
110 |
111 | .navbar-item,
112 | .navbar-link
113 | color: $navbar-item-color
114 | display: block
115 | line-height: 1.5
116 | padding: 0.5rem 1rem
117 | position: relative
118 |
119 | a.navbar-item,
120 | .navbar-link
121 | &:hover,
122 | &.is-active
123 | background-color: $navbar-item-hover-background-color
124 | color: $navbar-item-hover-color
125 |
126 | .navbar-item
127 | flex-grow: 0
128 | flex-shrink: 0
129 | img
130 | max-height: $navbar-item-img-max-height
131 | &.has-dropdown
132 | padding: 0
133 | &.is-tab
134 | border-bottom: 1px solid transparent
135 | min-height: $navbar-height
136 | padding-bottom: calc(0.5rem - 1px)
137 | &:hover
138 | background-color: $navbar-tab-hover-background-color
139 | border-bottom-color: $navbar-tab-hover-border-bottom-color
140 | &.is-active
141 | background-color: $navbar-tab-active-background-color
142 | border-bottom-color: $navbar-tab-active-border-bottom-color
143 | border-bottom-style: $navbar-tab-active-border-bottom-style
144 | border-bottom-width: $navbar-tab-active-border-bottom-width
145 | color: $navbar-tab-active-color
146 | padding-bottom: calc(0.5rem - #{$navbar-tab-active-border-bottom-width})
147 |
148 | .navbar-content
149 | flex-grow: 1
150 | flex-shrink: 1
151 |
152 | .navbar-link
153 | padding-right: 2.5em
154 |
155 | .navbar-dropdown
156 | font-size: 0.875rem
157 | padding-bottom: 0.5rem
158 | padding-top: 0.5rem
159 | .navbar-item
160 | padding-left: 1.5rem
161 | padding-right: 1.5rem
162 |
163 | .navbar-divider
164 | background-color: $navbar-divider-background-color
165 | border: none
166 | display: none
167 | height: 1px
168 | margin: 0.5rem 0
169 |
170 | +touch
171 | .navbar > .container
172 | display: block
173 | .navbar-brand,
174 | .navbar-tabs
175 | .navbar-item
176 | align-items: center
177 | display: flex
178 | .navbar-menu
179 | background-color: $white
180 | box-shadow: 0 8px 16px rgba($black, 0.1)
181 | padding: 0.5rem 0
182 | &.is-active
183 | display: block
184 |
185 | +desktop
186 | .navbar,
187 | .navbar-menu,
188 | .navbar-start,
189 | .navbar-end
190 | align-items: stretch
191 | display: flex
192 | .navbar
193 | min-height: $navbar-height
194 | &.is-transparent
195 | a.navbar-item,
196 | .navbar-link
197 | &:hover,
198 | &.is-active
199 | background-color: transparent !important
200 | .navbar-item.has-dropdown
201 | &.is-active,
202 | &.is-hoverable:hover
203 | .navbar-link
204 | background-color: transparent !important
205 | .navbar-dropdown
206 | a.navbar-item
207 | &:hover
208 | background-color: $navbar-dropdown-item-hover-background-color
209 | color: $navbar-dropdown-item-hover-color
210 | &.is-active
211 | background-color: $navbar-dropdown-item-active-background-color
212 | color: $navbar-dropdown-item-active-color
213 | .navbar-burger
214 | display: none
215 | .navbar-item,
216 | .navbar-link
217 | align-items: center
218 | display: flex
219 | .navbar-item
220 | &.has-dropdown
221 | align-items: stretch
222 | &.is-active,
223 | &.is-hoverable:hover
224 | .navbar-dropdown
225 | display: block
226 | &.is-boxed
227 | opacity: 1
228 | pointer-events: auto
229 | transform: translateY(0)
230 | .navbar-link
231 | &::after
232 | +arrow($navbar-dropdown-arrow)
233 | margin-top: -0.375em
234 | right: 1.125em
235 | top: 50%
236 | .navbar-menu
237 | flex-grow: 1
238 | flex-shrink: 0
239 | .navbar-start
240 | justify-content: flex-start
241 | margin-right: auto
242 | .navbar-end
243 | justify-content: flex-end
244 | margin-left: auto
245 | .navbar-dropdown
246 | background-color: $navbar-dropdown-background-color
247 | border-bottom-left-radius: $navbar-dropdown-radius
248 | border-bottom-right-radius: $navbar-dropdown-radius
249 | border-top: $navbar-dropdown-border-top
250 | box-shadow: 0 8px 8px rgba($black, 0.1)
251 | display: none
252 | font-size: 0.875rem
253 | left: 0
254 | min-width: 100%
255 | position: absolute
256 | top: 100%
257 | z-index: $navbar-dropdown-z
258 | .navbar-item
259 | padding: 0.375rem 1rem
260 | white-space: nowrap
261 | a.navbar-item
262 | padding-right: 3rem
263 | &:hover
264 | background-color: $navbar-dropdown-item-hover-background-color
265 | color: $navbar-dropdown-item-hover-color
266 | &.is-active
267 | background-color: $navbar-dropdown-item-active-background-color
268 | color: $navbar-dropdown-item-active-color
269 | &.is-boxed
270 | border-radius: $navbar-dropdown-boxed-radius
271 | border-top: none
272 | box-shadow: $navbar-dropdown-boxed-shadow
273 | display: block
274 | opacity: 0
275 | pointer-events: none
276 | top: calc(100% + (#{$navbar-dropdown-offset}))
277 | transform: translateY(-5px)
278 | transition-duration: $speed
279 | transition-property: opacity, transform
280 | &.is-right
281 | left: auto
282 | right: 0
283 | .navbar-divider
284 | display: block
285 | .container > .navbar
286 | .navbar-brand
287 | margin-left: -1rem
288 | .navbar-menu
289 | margin-right: -1rem
290 | // Hover/Active states
291 | a.navbar-item,
292 | .navbar-link
293 | &.is-active
294 | color: $navbar-item-active-color
295 | &.is-active:not(:hover)
296 | background-color: $navbar-item-active-background-color
297 | .navbar-item.has-dropdown
298 | &:hover,
299 | &.is-active
300 | .navbar-link
301 | background-color: $navbar-item-hover-background-color
302 |
--------------------------------------------------------------------------------
/static/website/bulma-0.6.0/sass/elements/form.sass:
--------------------------------------------------------------------------------
1 | $input-color: $grey-darker !default
2 | $input-background-color: $white !default
3 | $input-border-color: $grey-lighter !default
4 | $input-shadow: inset 0 1px 2px rgba($black, 0.1) !default
5 |
6 | $input-hover-color: $grey-darker !default
7 | $input-hover-border-color: $grey-light !default
8 |
9 | $input-focus-color: $grey-darker !default
10 | $input-focus-border-color: $link !default
11 | $input-focus-box-shadow-size: 0 0 0 0.125em !default
12 | $input-focus-box-shadow-color: rgba($link, 0.25) !default
13 |
14 | $input-disabled-color: $text-light !default
15 | $input-disabled-background-color: $background !default
16 | $input-disabled-border-color: $background !default
17 |
18 | $input-arrow: $link !default
19 |
20 | $input-icon-color: $grey-lighter !default
21 | $input-icon-active-color: $grey !default
22 |
23 | $input-radius: $radius !default
24 |
25 | $file-border-color: $border !default
26 | $file-radius: $radius !default
27 |
28 | $file-cta-background-color: $white-ter !default
29 | $file-cta-color: $grey-dark !default
30 | $file-cta-hover-color: $grey-darker !default
31 | $file-cta-active-color: $grey-darker !default
32 |
33 | $file-name-border-color: $border !default
34 | $file-name-border-style: solid !default
35 | $file-name-border-width: 1px 1px 1px 0 !default
36 | $file-name-max-width: 16em !default
37 |
38 | $label-color: $grey-darker !default
39 | $label-weight: $weight-bold !default
40 |
41 | $help-size: $size-small !default
42 |
43 | =input
44 | +control
45 | background-color: $input-background-color
46 | border-color: $input-border-color
47 | color: $input-color
48 | +placeholder
49 | color: rgba($input-color, 0.3)
50 | &:hover,
51 | &.is-hovered
52 | border-color: $input-hover-border-color
53 | &:focus,
54 | &.is-focused,
55 | &:active,
56 | &.is-active
57 | border-color: $input-focus-border-color
58 | box-shadow: $input-focus-box-shadow-size $input-focus-box-shadow-color
59 | &[disabled]
60 | background-color: $input-disabled-background-color
61 | border-color: $input-disabled-border-color
62 | box-shadow: none
63 | color: $input-disabled-color
64 | +placeholder
65 | color: rgba($input-disabled-color, 0.3)
66 |
67 | .input,
68 | .textarea
69 | +input
70 | box-shadow: $input-shadow
71 | max-width: 100%
72 | width: 100%
73 | &[type="search"]
74 | border-radius: 290486px
75 | &[readonly]
76 | box-shadow: none
77 | // Colors
78 | @each $name, $pair in $colors
79 | $color: nth($pair, 1)
80 | &.is-#{$name}
81 | border-color: $color
82 | &:focus,
83 | &.is-focused,
84 | &:active,
85 | &.is-active
86 | box-shadow: $input-focus-box-shadow-size rgba($color, 0.25)
87 | // Sizes
88 | &.is-small
89 | +control-small
90 | &.is-medium
91 | +control-medium
92 | &.is-large
93 | +control-large
94 | // Modifiers
95 | &.is-fullwidth
96 | display: block
97 | width: 100%
98 | &.is-inline
99 | display: inline
100 | width: auto
101 |
102 | .input
103 | &.is-static
104 | background-color: transparent
105 | border-color: transparent
106 | box-shadow: none
107 | padding-left: 0
108 | padding-right: 0
109 |
110 | .textarea
111 | display: block
112 | max-width: 100%
113 | min-width: 100%
114 | padding: 0.625em
115 | resize: vertical
116 | &:not([rows])
117 | max-height: 600px
118 | min-height: 120px
119 | &[rows]
120 | height: unset
121 | // Modifiers
122 | &.has-fixed-size
123 | resize: none
124 |
125 | .checkbox,
126 | .radio
127 | cursor: pointer
128 | display: inline-block
129 | line-height: 1.25
130 | position: relative
131 | input
132 | cursor: pointer
133 | &:hover
134 | color: $input-hover-color
135 | &[disabled]
136 | color: $input-disabled-color
137 | cursor: not-allowed
138 |
139 | .radio
140 | & + .radio
141 | margin-left: 0.5em
142 |
143 | .select
144 | display: inline-block
145 | max-width: 100%
146 | position: relative
147 | vertical-align: top
148 | &:not(.is-multiple)
149 | height: 2.25em
150 | &::after
151 | +arrow($input-arrow)
152 | margin-top: -0.375em
153 | right: 1.125em
154 | top: 50%
155 | z-index: 4
156 | select
157 | +input
158 | cursor: pointer
159 | display: block
160 | font-size: 1em
161 | max-width: 100%
162 | outline: none
163 | &::-ms-expand
164 | display: none
165 | &[disabled]:hover
166 | border-color: $input-disabled-border-color
167 | &:not([multiple])
168 | padding-right: 2.5em
169 | &[multiple]
170 | height: unset
171 | padding: 0
172 | option
173 | padding: 0.5em 1em
174 | // States
175 | &:hover
176 | &::after
177 | border-color: $input-hover-color
178 | // Colors
179 | @each $name, $pair in $colors
180 | $color: nth($pair, 1)
181 | &.is-#{$name} select
182 | border-color: $color
183 | &:focus,
184 | &.is-focused,
185 | &:active,
186 | &.is-active
187 | box-shadow: $input-focus-box-shadow-size rgba($color, 0.25)
188 | // Sizes
189 | &.is-small
190 | +control-small
191 | &.is-medium
192 | +control-medium
193 | &.is-large
194 | +control-large
195 | // Modifiers
196 | &.is-disabled
197 | &::after
198 | border-color: $input-disabled-color
199 | &.is-fullwidth
200 | width: 100%
201 | select
202 | width: 100%
203 | &.is-loading
204 | &::after
205 | +loader
206 | margin-top: 0
207 | position: absolute
208 | right: 0.625em
209 | top: 0.625em
210 | transform: none
211 | &.is-small:after
212 | font-size: $size-small
213 | &.is-medium:after
214 | font-size: $size-medium
215 | &.is-large:after
216 | font-size: $size-large
217 |
218 | .file
219 | +unselectable
220 | align-items: stretch
221 | display: flex
222 | justify-content: flex-start
223 | position: relative
224 | // Colors
225 | @each $name, $pair in $colors
226 | $color: nth($pair, 1)
227 | $color-invert: nth($pair, 2)
228 | &.is-#{$name}
229 | .file-cta
230 | background-color: $color
231 | border-color: transparent
232 | color: $color-invert
233 | &:hover,
234 | &.is-hovered
235 | .file-cta
236 | background-color: darken($color, 2.5%)
237 | border-color: transparent
238 | color: $color-invert
239 | &:focus,
240 | &.is-focused
241 | .file-cta
242 | border-color: transparent
243 | box-shadow: 0 0 0.5em rgba($color, 0.25)
244 | color: $color-invert
245 | &:active,
246 | &.is-active
247 | .file-cta
248 | background-color: darken($color, 5%)
249 | border-color: transparent
250 | color: $color-invert
251 | // Sizes
252 | &.is-small
253 | font-size: $size-small
254 | &.is-medium
255 | font-size: $size-medium
256 | .file-icon
257 | .fa
258 | font-size: 21px
259 | &.is-large
260 | font-size: $size-large
261 | .file-icon
262 | .fa
263 | font-size: 28px
264 | // Modifiers
265 | &.has-name
266 | .file-cta
267 | border-bottom-right-radius: 0
268 | border-top-right-radius: 0
269 | .file-name
270 | border-bottom-left-radius: 0
271 | border-top-left-radius: 0
272 | &.is-centered
273 | justify-content: center
274 | &.is-right
275 | justify-content: flex-end
276 | &.is-boxed
277 | .file-label
278 | flex-direction: column
279 | .file-cta
280 | flex-direction: column
281 | height: auto
282 | padding: 1em 3em
283 | .file-name
284 | border-width: 0 1px 1px
285 | .file-icon
286 | height: 1.5em
287 | width: 1.5em
288 | .fa
289 | font-size: 21px
290 | &.is-small
291 | .file-icon .fa
292 | font-size: 14px
293 | &.is-medium
294 | .file-icon .fa
295 | font-size: 28px
296 | &.is-large
297 | .file-icon .fa
298 | font-size: 35px
299 | &.has-name
300 | .file-cta
301 | border-radius: $file-radius $file-radius 0 0
302 | .file-name
303 | border-radius: 0 0 $file-radius $file-radius
304 | border-width: 0 1px 1px
305 | &.is-right
306 | .file-cta
307 | border-radius: 0 $file-radius $file-radius 0
308 | .file-name
309 | border-radius: $file-radius 0 0 $file-radius
310 | border-width: 1px 0 1px 1px
311 | order: -1
312 | &.is-fullwidth
313 | .file-label
314 | width: 100%
315 | .file-name
316 | flex-grow: 1
317 | max-width: none
318 |
319 | .file-label
320 | align-items: stretch
321 | display: flex
322 | cursor: pointer
323 | justify-content: flex-start
324 | overflow: hidden
325 | position: relative
326 | &:hover
327 | .file-cta
328 | background-color: darken($file-cta-background-color, 2.5%)
329 | color: $file-cta-hover-color
330 | .file-name
331 | border-color: darken($file-name-border-color, 2.5%)
332 | &:active
333 | .file-cta
334 | background-color: darken($file-cta-background-color, 5%)
335 | color: $file-cta-active-color
336 | .file-name
337 | border-color: darken($file-name-border-color, 5%)
338 |
339 | .file-input
340 | height: 0.01em
341 | left: 0
342 | outline: none
343 | position: absolute
344 | top: 0
345 | width: 0.01em
346 |
347 | .file-cta,
348 | .file-name
349 | +control
350 | border-color: $file-border-color
351 | border-radius: $file-radius
352 | font-size: 1em
353 | padding-left: 1em
354 | padding-right: 1em
355 | white-space: nowrap
356 |
357 | .file-cta
358 | background-color: $file-cta-background-color
359 | color: $file-cta-color
360 |
361 | .file-name
362 | border-color: $file-name-border-color
363 | border-style: $file-name-border-style
364 | border-width: $file-name-border-width
365 | display: block
366 | max-width: $file-name-max-width
367 | overflow: hidden
368 | text-align: left
369 | text-overflow: ellipsis
370 |
371 | .file-icon
372 | align-items: center
373 | display: flex
374 | height: 1em
375 | justify-content: center
376 | margin-right: 0.5em
377 | width: 1em
378 | .fa
379 | font-size: 14px
380 |
381 | .label
382 | color: $label-color
383 | display: block
384 | font-size: $size-normal
385 | font-weight: $label-weight
386 | &:not(:last-child)
387 | margin-bottom: 0.5em
388 | // Sizes
389 | &.is-small
390 | font-size: $size-small
391 | &.is-medium
392 | font-size: $size-medium
393 | &.is-large
394 | font-size: $size-large
395 |
396 | .help
397 | display: block
398 | font-size: $help-size
399 | margin-top: 0.25rem
400 | @each $name, $pair in $colors
401 | $color: nth($pair, 1)
402 | &.is-#{$name}
403 | color: $color
404 |
405 | // Containers
406 |
407 | .field
408 | &:not(:last-child)
409 | margin-bottom: 0.75rem
410 | // Modifiers
411 | &.has-addons
412 | display: flex
413 | justify-content: flex-start
414 | .control
415 | &:not(:last-child)
416 | margin-right: -1px
417 | &:first-child
418 | .button,
419 | .input,
420 | .select select
421 | border-bottom-left-radius: $input-radius
422 | border-top-left-radius: $input-radius
423 | &:last-child
424 | .button,
425 | .input,
426 | .select select
427 | border-bottom-right-radius: $input-radius
428 | border-top-right-radius: $input-radius
429 | .button,
430 | .input,
431 | .select select
432 | border-radius: 0
433 | &:hover,
434 | &.is-hovered
435 | z-index: 2
436 | &:focus,
437 | &.is-focused,
438 | &:active,
439 | &.is-active
440 | z-index: 3
441 | &:hover
442 | z-index: 4
443 | &.is-expanded
444 | flex-grow: 1
445 | &.has-addons-centered
446 | justify-content: center
447 | &.has-addons-right
448 | justify-content: flex-end
449 | &.has-addons-fullwidth
450 | .control
451 | flex-grow: 1
452 | flex-shrink: 0
453 | &.is-grouped
454 | display: flex
455 | justify-content: flex-start
456 | & > .control
457 | flex-shrink: 0
458 | &:not(:last-child)
459 | margin-bottom: 0
460 | margin-right: 0.75rem
461 | &.is-expanded
462 | flex-grow: 1
463 | flex-shrink: 1
464 | &.is-grouped-centered
465 | justify-content: center
466 | &.is-grouped-right
467 | justify-content: flex-end
468 | &.is-grouped-multiline
469 | flex-wrap: wrap
470 | & > .control
471 | &:last-child,
472 | &:not(:last-child)
473 | margin-bottom: 0.75rem
474 | &:last-child
475 | margin-bottom: -0.75rem
476 | &:not(:last-child)
477 | margin-bottom: 0
478 |
479 | &.is-horizontal
480 | +tablet
481 | display: flex
482 |
483 | .field-label
484 | .label
485 | font-size: inherit
486 | +mobile
487 | margin-bottom: 0.5rem
488 | +tablet
489 | flex-basis: 0
490 | flex-grow: 1
491 | flex-shrink: 0
492 | margin-right: 1.5rem
493 | text-align: right
494 | &.is-small
495 | font-size: $size-small
496 | padding-top: 0.375em
497 | &.is-normal
498 | padding-top: 0.375em
499 | &.is-medium
500 | font-size: $size-medium
501 | padding-top: 0.375em
502 | &.is-large
503 | font-size: $size-large
504 | padding-top: 0.375em
505 |
506 | .field-body
507 | .field .field
508 | margin-bottom: 0
509 | +tablet
510 | display: flex
511 | flex-basis: 0
512 | flex-grow: 5
513 | flex-shrink: 1
514 | .field
515 | margin-bottom: 0
516 | & > .field
517 | flex-shrink: 1
518 | &:not(.is-narrow)
519 | flex-grow: 1
520 | &:not(:last-child)
521 | margin-right: 0.75rem
522 |
523 | .control
524 | font-size: $size-normal
525 | position: relative
526 | text-align: left
527 | // Modifiers
528 | // DEPRECATED
529 | &.has-icon
530 | .icon
531 | color: $input-icon-color
532 | height: 2.25em
533 | pointer-events: none
534 | position: absolute
535 | top: 0
536 | width: 2.25em
537 | z-index: 4
538 | .input
539 | &:focus
540 | & + .icon
541 | color: $input-icon-active-color
542 | &.is-small
543 | & + .icon
544 | font-size: $size-small
545 | &.is-medium
546 | & + .icon
547 | font-size: $size-medium
548 | &.is-large
549 | & + .icon
550 | font-size: $size-large
551 | &:not(.has-icon-right)
552 | .icon
553 | left: 0
554 | .input
555 | padding-left: 2.25em
556 | &.has-icon-right
557 | .icon
558 | right: 0
559 | .input
560 | padding-right: 2.25em
561 | &.has-icons-left,
562 | &.has-icons-right
563 | .input,
564 | .select
565 | &:focus
566 | & ~ .icon
567 | color: $input-icon-active-color
568 | &.is-small ~ .icon
569 | font-size: $size-small
570 | &.is-medium ~ .icon
571 | font-size: $size-medium
572 | &.is-large ~ .icon
573 | font-size: $size-large
574 | .icon
575 | color: $input-icon-color
576 | height: 2.25em
577 | pointer-events: none
578 | position: absolute
579 | top: 0
580 | width: 2.25em
581 | z-index: 4
582 | &.has-icons-left
583 | .input,
584 | .select select
585 | padding-left: 2.25em
586 | .icon.is-left
587 | left: 0
588 | &.has-icons-right
589 | .input,
590 | .select select
591 | padding-right: 2.25em
592 | .icon.is-right
593 | right: 0
594 | &.is-loading
595 | &::after
596 | +loader
597 | position: absolute !important
598 | right: 0.625em
599 | top: 0.625em
600 | &.is-small:after
601 | font-size: $size-small
602 | &.is-medium:after
603 | font-size: $size-medium
604 | &.is-large:after
605 | font-size: $size-large
606 |
--------------------------------------------------------------------------------
/static/website/bulma-0.6.0/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Bulma Changelog
2 |
3 | ## 0.6.0
4 |
5 | ### Breaking changes
6 |
7 | * The new `$link` color is part of the `$colors` map. As a result, `.button.is-link` is a colored button now. Use `.button.is-text` if you want the underlined button.
8 | * The deprecated `variables.sass` file has been removed.
9 | * The deprecated `nav.sass` file has been removed.
10 |
11 | ### New features
12 |
13 | * #1236 `.table` hover effect is opt-in, by using the `.is-hoverable` modifier class
14 | * #1254 `.dropdown` now supports `.is-up` modifier
15 |
16 | ### Improvements
17 |
18 | * #1257 Include placeholder mixin in `=input`
19 |
20 | The `$link` color is used instead of `$primary` in the following components:
21 |
22 | | Variable | 25 |Old value | 26 |New value | 27 |
|---|---|---|
$dropdown-item-active-color |
30 | $primary-invert |
31 | $link-invert |
32 |
$dropdown-item-active-background-color |
35 | $primary |
36 | $link |
37 |
$navbar-tab-hover-border-bottom-color |
40 | $primary |
41 | $link |
42 |
$navbar-tab-active-color |
45 | $primary |
46 | $link |
47 |
$navbar-tab-active-border-bottom-color |
50 | $primary |
51 | $link |
52 |
$navbar-dropdown-item-active-color |
55 | $primary |
56 | $link |
57 |
$tabs-link-active-border-bottom-color |
60 | $primary |
61 | $link |
62 |
$tabs-link-active-color |
65 | $primary |
66 | $link |
67 |
$tabs-toggle-link-active-background-color |
70 | $primary |
71 | $link |
72 |
$tabs-toggle-link-active-border-color |
75 | $primary |
76 | $link |
77 |
$tabs-toggle-link-active-color |
80 | $primary-invert |
81 | $link-invert |
82 |
| From | To |
|---|---|
$card | $card-color |
$card-background | $card-background-color |
$card-header | $card-header-color |
$dropdown-item | $dropdown-item-color |
$dropdown-content-background | $dropdown-content-background-color |
$dropdown-item-hover-background | $dropdown-item-hover-background-color |
$dropdown-item-hover | $dropdown-item-hover-color |
$dropdown-item-active-background | $dropdown-item-active-background-color |
$dropdown-item-active | $dropdown-item-active-color |
$dropdown-divider-background | $dropdown-divider-background-color |
$menu-item | $menu-item-color |
$menu-item-hover | $menu-item-hover-color |
$menu-item-hover-background | $menu-item-hover-background-color |
$menu-item-active | $menu-item-active-color |
$menu-item-active-background | $menu-item-active-background-color |
$menu-label | $menu-label-color |
$message-background | $message-background-color |
$message-header-background | $message-header-background-color |
$navbar-background | $navbar-background-color |
$navbar-item | $navbar-item-color |
$navbar-item-hover | $navbar-item-hover-color |
$navbar-item-hover-background | $navbar-item-hover-background-color |
$navbar-item-active | $navbar-item-active-color |
$navbar-item-active-background | $navbar-item-active-background-color |
$navbar-tab-hover-background | $navbar-tab-hover-background-color |
$navbar-tab-hover-border-bottom | $navbar-tab-hover-border-bottom-color |
$navbar-tab-active | $navbar-tab-active-color |
$navbar-tab-active-background | $navbar-tab-active-background-color |
$navbar-divider-background | $navbar-divider-background-color |
$navbar-dropdown-item-hover | $navbar-dropdown-item-hover-color |
$navbar-dropdown-item-hover-background | $navbar-dropdown-item-hover-background-color |
$navbar-dropdown-item-active | $navbar-dropdown-item-active-color |
$navbar-dropdown-item-active-background | $navbar-dropdown-item-active-background-color |
$pagination | $pagination-color |
$pagination-hover | $pagination-hover-color |
$pagination-hover-border | $pagination-hover-border-color |
$pagination-focus | $pagination-focus-color |
$pagination-focus-border | $pagination-focus-border-color |
$pagination-active | $pagination-active-color |
$pagination-active-border | $pagination-active-border-color |
$pagination-disabled | $pagination-disabled-color |
$pagination-disabled-background | $pagination-disabled-background-color |
$pagination-disabled-border | $pagination-disabled-border-color |
$pagination-current | $pagination-current-color |
$pagination-current-background | $pagination-current-background-color |
$pagination-current-border | $pagination-current-border-color |
$pagination-ellipsis | $pagination-ellipsis-color |
$box | $box-color |
$box-background | $box-background-color |
$button | $button-color |
$button-background | $button-background-color |
$button-border | $button-border-color |
$button-link | $button-link-color |
$button-link-hover-background | $button-link-hover-background-color |
$button-link-hover | $button-link-hover-color |
$button-disabled-background | $button-disabled-background-color |
$button-disabled-border | $button-disabled-border-color |
$button-static | $button-static-color |
$button-static-background | $button-static-background-color |
$button-static-border | $button-static-border-color |
$input | $input-color |
$input-background | $input-background-color |
$input-border | $input-border-color |
$input-hover | $input-hover-color |
$input-hover-border | $input-hover-border-color |
$input-focus | $input-focus-color |
$input-focus-border | $input-focus-border-color |
$input-disabled | $input-disabled-color |
$input-disabled-background | $input-disabled-background-color |
$input-disabled-border | $input-disabled-border-color |
$input-icon | $input-icon-color |
$input-icon-active | $input-icon-active-color |
$title | $title-color |
$subtitle | $subtitle-color |
$card-footer-border | $card-footer-border-top |
$menu-list-border | $menu-list-border-left |
$navbar-tab-hover-border | $navbar-tab-hover-border-bottom-color |
$navbar-tab-active-border | $navbar-tab-active-border-bottom |
$table-border | $table-cell-border |
$table-row-even-background | $table-striped-row-even-background-color |
$table-row-even-hover-background | $table-striped-row-even-hover-background-color |