decidim-core 0.0.1.alpha2 → 0.0.1.alpha3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +11 -6
  3. data/app/assets/config/decidim_core_manifest.js +1 -0
  4. data/app/assets/images/decidim/badge-ajuntament-footer.png +0 -0
  5. data/app/assets/images/decidim/badge-ajuntament-header.svg +60 -0
  6. data/app/assets/images/decidim/cc-badge.png +0 -0
  7. data/app/assets/images/decidim/hero-home.jpg +0 -0
  8. data/app/assets/images/decidim/icons.svg +1 -0
  9. data/app/assets/javascripts/decidim.js +12 -1
  10. data/app/assets/stylesheets/{decidim.css → decidim.scss} +2 -1
  11. data/app/assets/stylesheets/decidim/application.sass +7 -0
  12. data/app/assets/stylesheets/decidim/layouts/_home.scss +244 -0
  13. data/app/assets/stylesheets/decidim/layouts/_user.scss +24 -0
  14. data/app/assets/stylesheets/decidim/layouts/_view.scss +22 -0
  15. data/app/assets/stylesheets/decidim/modules/_address.scss +26 -0
  16. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +119 -0
  17. data/app/assets/stylesheets/decidim/modules/_buttons.scss +120 -0
  18. data/app/assets/stylesheets/decidim/modules/_callout.scss +25 -0
  19. data/app/assets/stylesheets/decidim/modules/_card-grid.scss +22 -0
  20. data/app/assets/stylesheets/decidim/modules/_cards.scss +520 -0
  21. data/app/assets/stylesheets/decidim/modules/_comments.scss +119 -0
  22. data/app/assets/stylesheets/decidim/modules/_defintion-data.scss +54 -0
  23. data/app/assets/stylesheets/decidim/modules/_extra.scss +43 -0
  24. data/app/assets/stylesheets/decidim/modules/_filters.scss +96 -0
  25. data/app/assets/stylesheets/decidim/modules/_flag.scss +9 -0
  26. data/app/assets/stylesheets/decidim/modules/_footer.scss +90 -0
  27. data/app/assets/stylesheets/decidim/modules/_forms.scss +30 -0
  28. data/app/assets/stylesheets/decidim/modules/_help.scss +14 -0
  29. data/app/assets/stylesheets/decidim/modules/_icons.scss +32 -0
  30. data/app/assets/stylesheets/decidim/modules/_layout.scss +58 -0
  31. data/app/assets/stylesheets/decidim/modules/_list-docs.scss +30 -0
  32. data/app/assets/stylesheets/decidim/modules/_main-container.scss +70 -0
  33. data/app/assets/stylesheets/decidim/modules/_map.scss +72 -0
  34. data/app/assets/stylesheets/decidim/modules/_navbar.scss +258 -0
  35. data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +30 -0
  36. data/app/assets/stylesheets/decidim/modules/_order-by.scss +66 -0
  37. data/app/assets/stylesheets/decidim/modules/_owl-carousel.scss +72 -0
  38. data/app/assets/stylesheets/decidim/modules/_phase-nav.scss +177 -0
  39. data/app/assets/stylesheets/decidim/modules/_popularity.scss +74 -0
  40. data/app/assets/stylesheets/decidim/modules/_process-header.scss +125 -0
  41. data/app/assets/stylesheets/decidim/modules/_process-info.scss +44 -0
  42. data/app/assets/stylesheets/decidim/modules/_process-nav.scss +99 -0
  43. data/app/assets/stylesheets/decidim/modules/_reference.scss +6 -0
  44. data/app/assets/stylesheets/decidim/modules/_reveal.scss +20 -0
  45. data/app/assets/stylesheets/decidim/modules/_share.scss +28 -0
  46. data/app/assets/stylesheets/decidim/modules/_signup.scss +39 -0
  47. data/app/assets/stylesheets/decidim/modules/_static-pages.scss +46 -0
  48. data/app/assets/stylesheets/decidim/modules/_status-labels.scss +14 -0
  49. data/app/assets/stylesheets/decidim/modules/_tags.scss +29 -0
  50. data/app/assets/stylesheets/decidim/modules/_timeline.scss +189 -0
  51. data/app/assets/stylesheets/decidim/modules/_title-action.scss +28 -0
  52. data/app/assets/stylesheets/decidim/modules/_typography.scss +116 -0
  53. data/app/assets/stylesheets/decidim/modules/_user-form.scss +14 -0
  54. data/app/assets/stylesheets/decidim/modules/_video.scss +18 -0
  55. data/app/assets/stylesheets/decidim/utils/_fontface.scss +1 -0
  56. data/app/assets/stylesheets/decidim/utils/_helpers.sass +21 -0
  57. data/app/assets/stylesheets/decidim/utils/_keyframes.sass +13 -0
  58. data/app/assets/stylesheets/decidim/utils/_mixins.sass +33 -0
  59. data/app/assets/stylesheets/decidim/utils/_settings.scss +570 -0
  60. data/app/assets/stylesheets/decidim/utils/_toggle-expand.scss +8 -0
  61. data/app/assets/stylesheets/decidim/utils/_variables.scss +25 -0
  62. data/app/controllers/concerns/decidim/needs_organization.rb +31 -0
  63. data/app/controllers/decidim/application_controller.rb +1 -0
  64. data/app/controllers/decidim/devise/confirmations_controller.rb +10 -0
  65. data/app/controllers/decidim/devise/invitations_controller.rb +20 -0
  66. data/app/controllers/decidim/devise/passwords_controller.rb +10 -0
  67. data/app/controllers/decidim/devise/registrations_controller.rb +19 -0
  68. data/app/controllers/decidim/devise/sessions_controller.rb +10 -0
  69. data/app/helpers/decidim/application_helper.rb +3 -0
  70. data/app/helpers/decidim/layout_helper.rb +27 -0
  71. data/app/helpers/decidim/translations_helper.rb +16 -0
  72. data/app/mailers/decidim/decidim_devise_mailer.rb +11 -0
  73. data/app/middleware/decidim/current_organization.rb +28 -0
  74. data/app/models/decidim/organization.rb +9 -0
  75. data/app/models/decidim/participatory_process.rb +14 -0
  76. data/app/models/decidim/user.rb +28 -4
  77. data/app/views/decidim/devise/confirmations/new.html.erb +15 -0
  78. data/app/views/decidim/devise/invitations/edit.html.erb +14 -0
  79. data/app/views/decidim/devise/passwords/edit.html.erb +20 -0
  80. data/app/views/decidim/devise/passwords/new.html.erb +15 -0
  81. data/app/views/decidim/devise/registrations/edit.html.erb +35 -0
  82. data/app/views/decidim/devise/registrations/new.html.erb +23 -0
  83. data/app/views/decidim/devise/sessions/new.html.erb +23 -0
  84. data/app/views/decidim/devise/shared/_links.html.erb +25 -0
  85. data/app/views/decidim/home/show.html.erb +16 -4
  86. data/app/views/devise/mailer/confirmation_instructions.html.erb +4 -0
  87. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +10 -0
  88. data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +11 -0
  89. data/app/views/devise/mailer/password_change.html.erb +3 -0
  90. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  91. data/app/views/layouts/decidim/_footer.html.erb +28 -2
  92. data/app/views/layouts/decidim/_header.html.erb +59 -2
  93. data/config/i18n-tasks.yml +120 -0
  94. data/config/initializers/devise.rb +58 -8
  95. data/config/locales/en.yml +35 -0
  96. data/config/routes.rb +12 -1
  97. data/db/migrate/20160919104837_create_decidim_organizations.rb +13 -0
  98. data/db/migrate/20160920140207_devise_invitable_add_to_decidim_users.rb +23 -0
  99. data/db/migrate/20160920141039_user_belongs_to_organization.rb +5 -0
  100. data/db/migrate/20160920141151_user_has_roles.rb +5 -0
  101. data/db/migrate/20161005130108_add_participatory_processes.rb +17 -0
  102. data/db/migrate/20161005153007_add_description_to_organizations.rb +9 -0
  103. data/db/migrate/20161006085629_add_confirmable_to_devise.rb +14 -0
  104. data/db/seeds.rb +35 -0
  105. data/lib/decidim/core.rb +0 -1
  106. data/lib/decidim/core/engine.rb +30 -0
  107. data/lib/decidim/core/version.rb +1 -1
  108. data/lib/decidim/devise_failure_app.rb +36 -0
  109. data/lib/decidim/form_builder.rb +38 -0
  110. data/lib/decidim/translatable_attributes.rb +86 -0
  111. data/lib/devise/models/decidim_validatable.rb +67 -0
  112. data/lib/tasks/factory_girl.rake +16 -0
  113. metadata +254 -9
  114. data/config/locales/devise.en.yml +0 -62
  115. data/lib/decidim/testing_support/common_rake.rb +0 -13
  116. data/lib/generators/decidim/dummy_generator.rb +0 -58
  117. data/lib/generators/decidim/install_generator.rb +0 -76
  118. data/lib/generators/decidim/templates/initializer.rb +0 -4
@@ -0,0 +1,26 @@
1
+ //Variables
2
+
3
+ /* Card address */
4
+ .address{
5
+ @include clearfix;
6
+ display: flex;
7
+ }
8
+
9
+ .address__info{
10
+ display: flex;
11
+ flex-grow: 1;
12
+ }
13
+
14
+ .address__icon{
15
+ float: left;
16
+ display: flex;
17
+ align-self: center;
18
+ fill: $primary;
19
+ }
20
+
21
+ .address__details{
22
+ float: left;
23
+ max-width: 100%; //IE10 bug fix
24
+ padding-left: .5em;
25
+ align-self: center;
26
+ }
@@ -0,0 +1,119 @@
1
+ //Variables
2
+ $footer-author-color: $dark-gray;
3
+ $author-color: $muted;
4
+ $date-color: $muted;
5
+ $date-font-size: $small-font-size;
6
+ $author-data-color: $muted;
7
+
8
+ //Styles
9
+
10
+ .author-data{
11
+ @include clearfix();
12
+ color: $author-data-color;
13
+ font-size: .9rem;
14
+ padding-left: 30px;
15
+ position: relative;
16
+ a,
17
+ button{
18
+ color: $author-data-color;
19
+ &:hover{
20
+ color: $anchor-color;
21
+ }
22
+ }
23
+ .author__name{
24
+ color: $anchor-color;
25
+ }
26
+ .author__avatar{
27
+ position: absolute;
28
+ margin-left: -30px;
29
+ }
30
+ }
31
+
32
+ .author-data--small{
33
+ padding-left: 25px;
34
+ }
35
+
36
+ .author-data--noavatar{
37
+ padding-left: 0;
38
+ }
39
+
40
+ .author-data__main{
41
+ display: inline;
42
+ margin-right: .8rem;
43
+ }
44
+
45
+ .author-data__extra{
46
+ display: inline-block;
47
+ >button,
48
+ >a{
49
+ margin-right: 1rem;
50
+ }
51
+ @include breakpoint(large){
52
+ &:before{
53
+ content: "";
54
+ margin-right: .8rem;
55
+ border-right: $border;
56
+ height: .7rem;
57
+ display: inline-block;
58
+ vertical-align: middle;
59
+ }
60
+ }
61
+ }
62
+
63
+ .author{
64
+ display: flex;
65
+ font-size: .9rem;
66
+ }
67
+
68
+
69
+ .author--inline{
70
+ display: inline-block;
71
+ }
72
+
73
+ .author__name{
74
+ display: inline-block;
75
+ flex-grow: 1;
76
+ align-self: center;
77
+ color: $author-color;
78
+ .card__footer &{
79
+ color: $footer-author-color;
80
+ }
81
+ }
82
+
83
+ a:hover .author__name{
84
+ color: inherit;
85
+ }
86
+
87
+
88
+ .author__avatar{
89
+ padding: 0 .5em 0 0;
90
+ display: inline-block;
91
+ display: flex;
92
+ flex-direction: column;
93
+ align-self: center;
94
+ .author--inline &{
95
+ display: inline-block;
96
+ }
97
+ img{
98
+ border-radius: 50%;
99
+ width: 100%;
100
+ max-width: 25px;
101
+ margin-top: -5px;
102
+ }
103
+ }
104
+
105
+ .author__avatar--small{
106
+ .author-data &{
107
+ margin-left: -25px;
108
+ }
109
+ img{
110
+ max-width: 20px;
111
+ margin-top: -3px;
112
+ }
113
+ }
114
+
115
+ .author__date{
116
+ display: block;
117
+ color: $date-color;
118
+ font-size: $date-font-size;
119
+ }
@@ -0,0 +1,120 @@
1
+ /* Foundation button overrides*/
2
+
3
+ .button{
4
+ &.small{
5
+ padding-top: .5rem;
6
+ padding-bottom: .5rem;
7
+ }
8
+ &.tiny{
9
+ padding-top: .25rem;
10
+ padding-bottom: .25rem;
11
+ }
12
+ }
13
+
14
+
15
+ /*Extra buttons styles*/
16
+
17
+ .button--icon{
18
+ display: flex;
19
+ align-items: center;
20
+ .icon{
21
+ margin: 0 2px;
22
+ }
23
+ &.small{
24
+ .icon{
25
+ width: 12px;
26
+ height: 12px;
27
+ }
28
+ }
29
+ }
30
+
31
+ .button--frosted{
32
+ background-color: rgba($white, .65);
33
+ color: $primary;
34
+ }
35
+
36
+ .button--muted{
37
+ background-color: $muted;
38
+ &:hover{
39
+ background-color: $secondary;
40
+ }
41
+ &.hollow{
42
+ border-color: $muted;
43
+ }
44
+ }
45
+
46
+ .button--sc{
47
+ text-transform: uppercase;
48
+ letter-spacing: .05em;
49
+ font-weight: 600;
50
+ &.large{
51
+ font-size: 1rem;
52
+ }
53
+ }
54
+
55
+ .button__info{
56
+ text-transform: none;
57
+ font-weight: normal;
58
+ font-size: 80%;
59
+ margin-top: .25rem;
60
+ display: block;
61
+ }
62
+
63
+ .link{
64
+ color: $anchor-color;
65
+ font-weight: 600;
66
+ }
67
+
68
+ .link--no-color{
69
+ color: inherit;
70
+ }
71
+
72
+ .muted-link{
73
+ font-weight: 600;
74
+ color: $muted;
75
+ &:hover{
76
+ color: $anchor-color;
77
+ }
78
+ }
79
+
80
+ .show-more{
81
+ font-size: 90%;
82
+ }
83
+
84
+ /*Social buttons*/
85
+
86
+ .button--social{
87
+ padding: 0 1.5rem 0 0;
88
+ text-align: left;
89
+ display: block;
90
+ min-width: 250px;
91
+ }
92
+
93
+ .button--social__icon{
94
+ display: inline-block;
95
+ vertical-align: middle;
96
+ padding: 0.85em 1rem;
97
+ border-right: 1px solid rgba(black,.075);
98
+ margin-right: .5rem;
99
+ min-width: 3rem;
100
+ text-align: center;
101
+ }
102
+
103
+ .button--twitter{
104
+ background-color: $twitter;
105
+ &:hover{
106
+ background-color: lighten($twitter,5);
107
+ }
108
+ }
109
+ .button--facebook{
110
+ background-color: $facebook;
111
+ &:hover{
112
+ background-color: lighten($facebook,5);
113
+ }
114
+ }
115
+ .button--google{
116
+ background-color: $google;
117
+ &:hover{
118
+ background-color: lighten($google,5);
119
+ }
120
+ }
@@ -0,0 +1,25 @@
1
+ /* Callout foundation overwrites*/
2
+
3
+ .callout{
4
+ &.primary{
5
+ background: $light-gray;
6
+ border-color: $medium-gray;
7
+ border-left: 8px solid $primary;
8
+ }
9
+ &.secondary{
10
+ border-color: $medium-gray;
11
+ border-left: 8px solid $secondary;
12
+ }
13
+ &.success{
14
+ border-color: $medium-gray;
15
+ border-left: 8px solid $success;
16
+ }
17
+ &.warning{
18
+ border-color: $medium-gray;
19
+ border-left: 8px solid $warning;
20
+ }
21
+ &.alert{
22
+ border-color: $medium-gray;
23
+ border-left: 8px solid $alert;
24
+ }
25
+ }
@@ -0,0 +1,22 @@
1
+ $card-grid-margin-bottom: map-get($grid-column-gutter, medium);
2
+
3
+ .card-grid{
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+
7
+ &:before{
8
+ width: 0; //fixes a flexbox bug in Safari with the clearfix element
9
+ }
10
+
11
+ .column{
12
+ margin-bottom: $card-grid-margin-bottom;
13
+ }
14
+
15
+ .card{
16
+ margin-bottom: 0;
17
+ display: flex;
18
+ flex-direction: column;
19
+ height: 100%;
20
+ justify-content: space-between;
21
+ }
22
+ }
@@ -0,0 +1,520 @@
1
+ /* Variables */
2
+
3
+ $card-bg: $white;
4
+ $card-secondary-bg: $light-gray-dark;
5
+ $card-border: $border;
6
+ $card-border-radius: $global-radius;
7
+ $card-shadow: 0 2px 7px rgba(black,.1);
8
+
9
+ $card-padding-small: 1rem;
10
+ $card-padding: 1.5rem;
11
+ $card-margin-bottom: map-get($grid-column-gutter, medium);
12
+
13
+ $card-footer-bg: $light-gray-dark;
14
+
15
+ $card-proposal: $proposals;
16
+ $card-action: $actions;
17
+ $card-debate: $debates;
18
+ $card-meeting: $meetings;
19
+
20
+ $datetime-bg: $primary;
21
+
22
+
23
+ /* Cards */
24
+ .card{
25
+ margin-bottom: $card-margin-bottom;
26
+ background: $card-bg;
27
+ border: $card-border;
28
+ border-radius: $card-border-radius;
29
+ overflow: hidden;
30
+ //box-shadow: $card-shadow;
31
+ }
32
+
33
+ .card--nomargin{
34
+ margin-bottom: 0;
35
+ }
36
+
37
+ .card--secondary{
38
+ background: $card-secondary-bg;
39
+ box-shadow: none;
40
+ }
41
+
42
+ .card__content{
43
+ padding: $card-padding-small;
44
+ @include breakpoint(medium){
45
+ padding: $card-padding;
46
+ }
47
+ }
48
+
49
+ .card__extra{
50
+ background: $card-secondary-bg;
51
+ padding: $card-padding-small;
52
+ }
53
+
54
+ .card__title{
55
+ @extend .heading5;
56
+ }
57
+
58
+ .card__header{
59
+ margin-bottom: 1rem;
60
+ }
61
+
62
+ .card__button{
63
+ margin-bottom: 0;
64
+ }
65
+
66
+ .card__type{
67
+ background: $light-gray-dark;
68
+ padding: .1rem 1rem;
69
+ margin-top: .5rem;
70
+ margin-bottom: -.75rem;
71
+ font-size: 80%;
72
+ text-transform: uppercase;
73
+ font-weight: 800;
74
+ letter-spacing: .05em;
75
+ color: $muted;
76
+ align-self: flex-start;
77
+ display: flex;
78
+ align-items: center;
79
+ .icon{
80
+ width: 14px;
81
+ height: 14px;
82
+ fill: $muted;
83
+ margin-right: .2rem;
84
+ }
85
+ }
86
+
87
+ /* Card meetings */
88
+
89
+ .card--meeting{
90
+ .card__content{
91
+ display: flex;
92
+ flex-direction: column;
93
+ flex-grow: 1;
94
+ .address{
95
+ margin-top: auto;
96
+ }
97
+ }
98
+ }
99
+
100
+
101
+ /* Card datetime */
102
+
103
+ .card__datetime{
104
+ flex-shrink: 0;
105
+ text-align: center;
106
+ margin-bottom: 1rem;
107
+ padding: .5rem;
108
+ font-weight: 600;
109
+ display: flex;
110
+ align-items: baseline;
111
+ border-left: 4px solid $primary;
112
+ background: $card-secondary-bg;
113
+ line-height: 1;
114
+ }
115
+
116
+ .card__datetime__date{
117
+ font-size: 1.4rem;
118
+ margin-right: 1rem;
119
+ }
120
+
121
+ .card__datetime__month{
122
+ text-transform: lowercase;
123
+ font-variant: small-caps;
124
+ font-size: 1.2rem;
125
+ }
126
+
127
+ .card__datetime__time{
128
+ font-size: .8rem;
129
+ }
130
+
131
+
132
+ /* Card footer */
133
+
134
+ .card__footer{
135
+ background: $card-footer-bg;
136
+ border-top: $card-border;
137
+ border-radius: 0 0 $card-border-radius $card-border-radius;
138
+ clear: both;
139
+ .card__content{
140
+ display: flex;
141
+ }
142
+ }
143
+
144
+ .card__footer--data{
145
+ display: flex;
146
+ align-items: center;
147
+ .card__content{
148
+ flex-grow: 1;
149
+ }
150
+ .card-data{
151
+ flex-direction: column;
152
+ }
153
+ .card-data__item{
154
+ flex-basis: auto;
155
+ border-right: none;
156
+ border-left: $border;
157
+ border-bottom: $border;
158
+ &:last-of-type{
159
+ border-bottom: none;
160
+ }
161
+ }
162
+ }
163
+
164
+ .card__author{
165
+ margin-top: -.3rem;
166
+ margin-bottom: .5rem;
167
+ }
168
+
169
+ .card__voting{
170
+ display: inline-block;
171
+ text-align: center;
172
+ }
173
+
174
+ .card__vote-number{
175
+ font-size: 1.3rem;
176
+ font-weight: 600;
177
+ line-height: 1;
178
+ }
179
+
180
+ /* Card data */
181
+
182
+ .card-data{
183
+ list-style: none;
184
+ margin: 0;
185
+ display: flex;
186
+ flex-wrap: wrap;
187
+ }
188
+ .card-data__item{
189
+ display: inline-block;
190
+ flex-basis: 33.33%;
191
+ flex-grow: 1;
192
+ text-align: center;
193
+ text-transform: uppercase;
194
+ font-size: 85%;
195
+ line-height: 1;
196
+ color: $muted;
197
+ padding: .5em;
198
+ border-right: $border;
199
+ margin-right: -1px;
200
+ border-top: $border;
201
+ margin-top: -1px;
202
+ }
203
+ .card-data__item__number{
204
+ display: block;
205
+ line-height: 1;
206
+ font-weight: 600;
207
+ font-size: rem-calc(20);
208
+ color: $body-font-color;
209
+ margin-bottom: .2rem;
210
+ }
211
+
212
+ /* Card popularity */
213
+
214
+ .card__popularity{
215
+ padding: $card-padding;
216
+ text-align: center;
217
+ .icon{
218
+ fill: $medium-gray;
219
+ }
220
+ }
221
+
222
+ .card__popularity__data{
223
+ text-align: center;
224
+ text-transform: uppercase;
225
+ font-size: 85%;
226
+ line-height: 1;
227
+ margin-bottom: .2rem;
228
+ color: $muted;
229
+ }
230
+
231
+
232
+
233
+ /* Card support */
234
+
235
+ .card__support{
236
+ margin-left: auto;
237
+ display: flex;
238
+ flex-wrap: wrap;
239
+ justify-content: space-between;
240
+ align-items: center;
241
+ padding: $card-padding-small;
242
+ @include breakpoint(medium){
243
+ padding: $card-padding;
244
+ }
245
+ .card__button{
246
+ //margin-left: auto;
247
+ font-size: $small-font-size;
248
+ }
249
+ }
250
+
251
+ .card__support__data{
252
+ text-align: center;
253
+ text-transform: uppercase;
254
+ font-size: 85%;
255
+ line-height: 1;
256
+ margin-bottom: .2rem;
257
+ color: $muted;
258
+ }
259
+
260
+ .card__support__number{
261
+ line-height: 1;
262
+ font-weight: 600;
263
+ font-size: rem-calc(20);
264
+ color: $body-font-color;
265
+ }
266
+
267
+
268
+ /* Card with image */
269
+ .card__img{
270
+ text-align: center;
271
+ @include breakpoint(large){
272
+ float: right;
273
+ width: 35%;
274
+ }
275
+ }
276
+
277
+ .card__content--img{
278
+ @include breakpoint(large){
279
+ float: left;
280
+ width: 60%;
281
+ }
282
+ }
283
+
284
+
285
+ /* Card Link */
286
+ .card__link{
287
+ color: inherit;
288
+ &:hover{
289
+ color: $anchor-color;
290
+ }
291
+ }
292
+
293
+ .card__link--block{
294
+ display: block;
295
+ }
296
+
297
+ /* Card list */
298
+ .card--list{
299
+ .card--list__item:not(:last-of-type){
300
+ border-bottom: $border;
301
+ }
302
+ }
303
+
304
+ .card--list__item{
305
+ display: flex;
306
+ align-items: center;
307
+ padding-left: $card-padding-small;
308
+ .card--list--mini &{
309
+ padding-left: $card-padding-small;
310
+ }
311
+ @include breakpoint(medium){
312
+ padding-left: $card-padding;
313
+ }
314
+ }
315
+
316
+ .card--list__icon{
317
+ display: none;
318
+ fill: $anchor-color;
319
+ @include breakpoint(medium){
320
+ margin-right: 1rem;
321
+ display: block;
322
+ width: 30px;
323
+ height: 30px;
324
+ flex-shrink: 0;
325
+ }
326
+ }
327
+
328
+ .card--list__text{
329
+ flex-grow: 1;
330
+ flex-shrink: 1;
331
+ display: inline-flex;
332
+ overflow: hidden;
333
+ align-items: center;
334
+ padding: 1rem 1rem 1rem 0;
335
+ .card--list--mini &{
336
+ padding: .5rem .5rem .5rem 0;
337
+ }
338
+ .author{
339
+ margin-top: .3rem;
340
+ margin-right: 1rem;
341
+ }
342
+ }
343
+
344
+ .card--list__heading{
345
+ margin-bottom: 0;
346
+ display: block;
347
+ }
348
+
349
+ .card--list .tags{
350
+ @include breakpoint(medium down){
351
+ display: none;
352
+ }
353
+ }
354
+
355
+ .card--list__data{
356
+ flex-shrink: 0;
357
+ align-self: stretch;
358
+ display: flex;
359
+ flex-direction: column;
360
+ align-items: center;
361
+ justify-content: center;
362
+ text-align: center;
363
+ text-transform: uppercase;
364
+ font-size: 85%;
365
+ line-height: 1;
366
+ color: $muted;
367
+ padding: $card-padding-small;
368
+ background: $card-secondary-bg;
369
+ @include breakpoint(medium){
370
+ padding: 1rem $card-padding;
371
+ }
372
+ .card--list--mini &{
373
+ padding: .5rem $card-padding-small;
374
+ }
375
+ }
376
+
377
+ .card--list__data__icon{
378
+ .icon{
379
+ width: 20px;
380
+ height: 20px;
381
+ fill: $muted;
382
+ }
383
+ &:hover{
384
+ .icon{
385
+ fill: $anchor-color;
386
+ }
387
+ }
388
+ }
389
+
390
+ .card--list__data__number{
391
+ @extend .card-data__item__number;
392
+ font-size: 1.5rem;
393
+ }
394
+
395
+ /* Card full width variant */
396
+
397
+ .card--full{
398
+ margin-bottom: $card-margin-bottom*2;
399
+ &:last-child{
400
+ margin-bottom: 0;
401
+ }
402
+ .card__title{
403
+ @extend .heading2;
404
+ }
405
+ .card__content{
406
+ padding: $card-padding;
407
+ @include breakpoint(large){
408
+ padding: $card-padding*2;
409
+ }
410
+ }
411
+ }
412
+
413
+ .card--full__image{
414
+ background-size: cover;
415
+ background-position: center;
416
+ background-repeat: no-repeat;
417
+ position: relative;
418
+ @include breakpoint(medium only){
419
+ min-height: 15rem;
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ }
424
+ &:after{
425
+ content: "";
426
+ display: block;
427
+ width: 100%;
428
+ height: 100%;
429
+ position: absolute;
430
+ top: 0;
431
+ left: 0;
432
+ background: linear-gradient(to bottom, rgba($white,1),rgba($white,0) 80%);
433
+ z-index: 0;
434
+ @include breakpoint(mediumlarge){
435
+ background: linear-gradient(to right, rgba($white,1),rgba($white,0) 80%);
436
+ }
437
+ }
438
+ > .card__content{
439
+ position: relative;
440
+ z-index: 1;
441
+ @include breakpoint(medium only){
442
+ min-width: 50%;
443
+ }
444
+ @include breakpoint(mediumlarge){
445
+ position: absolute;
446
+ top: 0;
447
+ width: 100%;
448
+ }
449
+ }
450
+ }
451
+
452
+ //small card with top image
453
+ .card__image-top{
454
+ background-size: cover;
455
+ background-position: center;
456
+ background-repeat: no-repeat;
457
+ height: 10rem;
458
+ .card--process &{
459
+ display: none;
460
+ @include breakpoint(mediumlarge){
461
+ display: block;
462
+ }
463
+ }
464
+ }
465
+
466
+
467
+ /* Card full width process variant */
468
+
469
+
470
+ @include breakpoint(mediumlarge){
471
+ .card--process__row{
472
+ display: flex;
473
+ }
474
+
475
+ .card--process__column{
476
+ position: relative;
477
+ .card--full__image-wrapper{
478
+ height: 100%;
479
+ overflow: hidden;
480
+ }
481
+ .card--full__image{
482
+ height: 100%;
483
+ position: absolute;
484
+ right: -1px;
485
+ left: 0;
486
+ > img{
487
+ min-height: 100%;
488
+ max-width: initial;
489
+ position: absolute;
490
+ }
491
+ }
492
+ }
493
+ }
494
+
495
+ .card--process__small{
496
+ font-size: $small-font-size;
497
+ &:last-child{
498
+ margin-bottom: 0;
499
+ }
500
+ }
501
+
502
+ /* Card mini */
503
+
504
+ .card--mini{
505
+ .card__content{
506
+ padding: $card-padding $card-padding-small;
507
+ display: flex;
508
+ flex-direction: column;
509
+ flex-grow: 1;
510
+ }
511
+ .card__image-top{
512
+ display: block;
513
+ height: 8rem;
514
+ }
515
+ .card--process__small{
516
+ margin-top: auto;
517
+ }
518
+ }
519
+
520
+