Commit ef175cf664b7f0c5a03c174c197a221cf5bbe51f
1 parent
432f8dc0
Exists in
master
and in
8 other branches
Split content handler. Added PageContentController
Showing
14 changed files
with
298 additions
and
57 deletions
Show diff stats
src/app/components/programa/programa.directive.js
@@ -9,10 +9,11 @@ | @@ -9,10 +9,11 @@ | ||
9 | function programaBox($rootScope) { | 9 | function programaBox($rootScope) { |
10 | 10 | ||
11 | /** @ngInject */ | 11 | /** @ngInject */ |
12 | - function ProgramaController($state, Slug, $log) { | 12 | + function ProgramaController(ArticleService, $state, Slug, $log) { |
13 | $log.debug('ProgramaController'); | 13 | $log.debug('ProgramaController'); |
14 | 14 | ||
15 | var vm = this; | 15 | var vm = this; |
16 | + vm.ArticleService = ArticleService; | ||
16 | vm.$state = $state; | 17 | vm.$state = $state; |
17 | vm.Slug = Slug; | 18 | vm.Slug = Slug; |
18 | vm.$log = $log; | 19 | vm.$log = $log; |
@@ -27,6 +28,8 @@ | @@ -27,6 +28,8 @@ | ||
27 | vm.program.slug = vm.Slug.slugify(vm.program.title); | 28 | vm.program.slug = vm.Slug.slugify(vm.program.title); |
28 | } | 29 | } |
29 | 30 | ||
31 | + vm.displayType = vm.display; | ||
32 | + | ||
30 | // if(vm.program.color && !vm.program.bgColor){ | 33 | // if(vm.program.color && !vm.program.bgColor){ |
31 | // // 15% more darker | 34 | // // 15% more darker |
32 | // vm.program.colorDarker = window.ColorLuminance(vm.program.color, 0.15); | 35 | // vm.program.colorDarker = window.ColorLuminance(vm.program.color, 0.15); |
@@ -79,10 +82,18 @@ | @@ -79,10 +82,18 @@ | ||
79 | ProgramaController.prototype.showContent = function () { | 82 | ProgramaController.prototype.showContent = function () { |
80 | var vm = this; | 83 | var vm = this; |
81 | 84 | ||
82 | - vm.$log.info('showContent'); | 85 | + vm.$state.go('programa-conheca', { |
86 | + slug: vm.program.slug | ||
87 | + }, { | ||
88 | + location: true | ||
89 | + }); | ||
90 | + }; | ||
91 | + | ||
92 | + ProgramaController.prototype.showPreview = function () { | ||
93 | + var vm = this; | ||
94 | + | ||
83 | vm.$state.go('programa', { | 95 | vm.$state.go('programa', { |
84 | - slug: vm.program.slug, | ||
85 | - program: vm.program | 96 | + slug: vm.program.slug |
86 | }, { | 97 | }, { |
87 | location: true | 98 | location: true |
88 | }); | 99 | }); |
src/app/components/programa/programa.html
1 | <div ng-if="vm.program" class="{{::vm.getCategorySlug()}}"> | 1 | <div ng-if="vm.program" class="{{::vm.getCategorySlug()}}"> |
2 | - <article class="program-box" ng-if="vm.isDisplayBox()" ng-click="vm.showContent()"> | 2 | + <article ng-if="vm.displayType == 'box'" class="program-box" ng-click="vm.showPreview()"> |
3 | <div> | 3 | <div> |
4 | <h2 class="program-box--category">{{::vm.getCategoryName()}}</h2> | 4 | <h2 class="program-box--category">{{::vm.getCategoryName()}}</h2> |
5 | <div class="program-box--image-wrapper"> | 5 | <div class="program-box--image-wrapper"> |
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | <h1>{{::vm.program.title}}</h1> | 10 | <h1>{{::vm.program.title}}</h1> |
11 | </div> | 11 | </div> |
12 | <div class="program-box--abstract" ng-bind-html="vm.program.abstract"></div> | 12 | <div class="program-box--abstract" ng-bind-html="vm.program.abstract"></div> |
13 | - <div class="program-box--button"> | 13 | + <div class="button--themed"> |
14 | <button class="btn btn-block"> | 14 | <button class="btn btn-block"> |
15 | Participe | 15 | Participe |
16 | </button> | 16 | </button> |
@@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
18 | </div> | 18 | </div> |
19 | </article> | 19 | </article> |
20 | 20 | ||
21 | - <article ng-if="vm.isDisplayPreview()" class="program-preview"> | 21 | + <article ng-if="vm.displayType == 'preview'" class="program-preview"> |
22 | <header class="program-banner"> | 22 | <header class="program-banner"> |
23 | <img class="program-banner--image" ng-src="{{vm.getImageUrl()}}" alt="{{::vm.getImageAlt()}}"> | 23 | <img class="program-banner--image" ng-src="{{vm.getImageUrl()}}" alt="{{::vm.getImageAlt()}}"> |
24 | <div class="program-banner--strip"> | 24 | <div class="program-banner--strip"> |
@@ -26,5 +26,15 @@ | @@ -26,5 +26,15 @@ | ||
26 | <p class="program-banner--abstract" ng-bind-html="vm.program.abstract"></p> | 26 | <p class="program-banner--abstract" ng-bind-html="vm.program.abstract"></p> |
27 | </div> | 27 | </div> |
28 | </header> | 28 | </header> |
29 | + | ||
30 | + <section class="call-to-action--section"> | ||
31 | + <div class="row"> | ||
32 | + <div class="col-xs-10 col-xs-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3"> | ||
33 | + <div class="button--themed"> | ||
34 | + <button class="btn btn-block" ng-click="vm.showContent()">Conheça o programa</button> | ||
35 | + </div> | ||
36 | + </div> | ||
37 | + </div> | ||
38 | + </section> | ||
29 | </article> | 39 | </article> |
30 | </div> | 40 | </div> |
src/app/components/programa/programa.scss
@@ -4,6 +4,46 @@ $scale: 1.1; | @@ -4,6 +4,46 @@ $scale: 1.1; | ||
4 | $time: .2s; | 4 | $time: .2s; |
5 | $darken: 15%; | 5 | $darken: 15%; |
6 | 6 | ||
7 | +// Commons | ||
8 | +.button--themed { | ||
9 | + padding: $program-box-space; | ||
10 | + .btn { | ||
11 | + color: #fff; | ||
12 | + font-weight: bold; | ||
13 | + padding: 15px 0; | ||
14 | + border-left: 0; | ||
15 | + border-right: 0; | ||
16 | + border-top: 0; | ||
17 | + border-radius: 6px; | ||
18 | + | ||
19 | + -webkit-transition: all $time ease-in-out; | ||
20 | + -moz-transition: all $time ease-in-out; | ||
21 | + -o-transition: all $time ease-in-out; | ||
22 | + transition: all $time ease-in-out; | ||
23 | + | ||
24 | + @each $category, $color in $categories { | ||
25 | + .#{$category} & { | ||
26 | + background-color: $color; | ||
27 | + border-bottom: 3px solid darken($color, $darken); | ||
28 | + } | ||
29 | + } | ||
30 | + | ||
31 | + &:hover, | ||
32 | + &:focus { | ||
33 | + @each $category, $color in $categories { | ||
34 | + .#{$category} & { | ||
35 | + background-color: darken($color, $darken); | ||
36 | + } | ||
37 | + } | ||
38 | + } | ||
39 | + | ||
40 | + .contraste & { | ||
41 | + color: #262626; | ||
42 | + background-color: #fff; | ||
43 | + } | ||
44 | + } | ||
45 | +} | ||
46 | + | ||
7 | .program-box { | 47 | .program-box { |
8 | cursor: pointer; | 48 | cursor: pointer; |
9 | background-color: #fff; | 49 | background-color: #fff; |
@@ -110,45 +150,6 @@ $darken: 15%; | @@ -110,45 +150,6 @@ $darken: 15%; | ||
110 | p { margin: 0; } | 150 | p { margin: 0; } |
111 | } | 151 | } |
112 | 152 | ||
113 | - &--button { | ||
114 | - padding: $program-box-space; | ||
115 | - .btn { | ||
116 | - color: #fff; | ||
117 | - font-weight: bold; | ||
118 | - padding: 15px 0; | ||
119 | - border-left: 0; | ||
120 | - border-right: 0; | ||
121 | - border-top: 0; | ||
122 | - border-radius: 6px; | ||
123 | - | ||
124 | - -webkit-transition: all $time ease-in-out; | ||
125 | - -moz-transition: all $time ease-in-out; | ||
126 | - -o-transition: all $time ease-in-out; | ||
127 | - transition: all $time ease-in-out; | ||
128 | - | ||
129 | - @each $category, $color in $categories { | ||
130 | - .#{$category} & { | ||
131 | - background-color: $color; | ||
132 | - border-bottom: 3px solid darken($color, $darken); | ||
133 | - } | ||
134 | - } | ||
135 | - | ||
136 | - &:hover, | ||
137 | - &:focus { | ||
138 | - @each $category, $color in $categories { | ||
139 | - .#{$category} & { | ||
140 | - background-color: darken($color, $darken); | ||
141 | - } | ||
142 | - } | ||
143 | - } | ||
144 | - | ||
145 | - .contraste & { | ||
146 | - color: #262626; | ||
147 | - background-color: #fff; | ||
148 | - } | ||
149 | - } | ||
150 | - } | ||
151 | - | ||
152 | &--image-wrapper { | 153 | &--image-wrapper { |
153 | position: relative; | 154 | position: relative; |
154 | // width: 100%; | 155 | // width: 100%; |
@@ -231,4 +232,31 @@ $darken: 15%; | @@ -231,4 +232,31 @@ $darken: 15%; | ||
231 | .program-banner--abstract { | 232 | .program-banner--abstract { |
232 | padding-bottom: 10px; | 233 | padding-bottom: 10px; |
233 | } | 234 | } |
235 | + | ||
236 | + .button--themed { | ||
237 | + .btn { | ||
238 | + font-size: 38px; | ||
239 | + | ||
240 | + @media (max-width: $screen-sm){ | ||
241 | + font-size: 20px; | ||
242 | + } | ||
243 | + } | ||
244 | + } | ||
245 | +} | ||
246 | + | ||
247 | + | ||
248 | +.program-content { | ||
249 | + h2 { | ||
250 | + font-size: 38px; | ||
251 | + font-weight: 500; | ||
252 | + margin-bottom: 40px; | ||
253 | + padding-bottom: 20px; | ||
254 | + | ||
255 | + small { | ||
256 | + display: block; | ||
257 | + font-size: 16px; | ||
258 | + padding-top: 5px; | ||
259 | + text-transform: none; | ||
260 | + } | ||
261 | + } | ||
234 | } | 262 | } |
src/app/components/programas/programas.scss
@@ -64,7 +64,7 @@ | @@ -64,7 +64,7 @@ | ||
64 | position: absolute; | 64 | position: absolute; |
65 | top: -16px; | 65 | top: -16px; |
66 | left: -14px; | 66 | left: -14px; |
67 | - transform: scale(0.4); | 67 | + transform: scale(0.35); |
68 | } | 68 | } |
69 | 69 | ||
70 | @each $category, $color in $categories { | 70 | @each $category, $color in $categories { |
src/app/index.route.js
@@ -57,6 +57,18 @@ | @@ -57,6 +57,18 @@ | ||
57 | 'footer': { templateUrl: 'app/pages/footer/footer.html' } | 57 | 'footer': { templateUrl: 'app/pages/footer/footer.html' } |
58 | } | 58 | } |
59 | }) | 59 | }) |
60 | + .state('programa-conheca', { | ||
61 | + url: '/programa/:slug/conheca-o-programa', | ||
62 | + views: { | ||
63 | + 'header': { templateUrl: 'app/pages/header/header.html' }, | ||
64 | + 'main': { | ||
65 | + templateUrl: 'app/pages/programas/conheca-o-programa.html', | ||
66 | + controller: 'ProgramaContentPageController', | ||
67 | + controllerAs: 'pageProgramaContent' | ||
68 | + }, | ||
69 | + 'footer': { templateUrl: 'app/pages/footer/footer.html' } | ||
70 | + } | ||
71 | + }) | ||
60 | .state('sobre', { | 72 | .state('sobre', { |
61 | url: '/sobre', | 73 | url: '/sobre', |
62 | views: { | 74 | views: { |
src/app/index.run.js
@@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
18 | $rootScope.$on('$stateChangeStart', function(event, next) { | 18 | $rootScope.$on('$stateChangeStart', function(event, next) { |
19 | 19 | ||
20 | if (!next.data || !next.data.authorizedRoles) { | 20 | if (!next.data || !next.data.authorizedRoles) { |
21 | - $log.debug('public url/state'); | 21 | + $log.debug('runAuth: public url/state'); |
22 | return; | 22 | return; |
23 | } | 23 | } |
24 | 24 |
src/app/pages/article/article.service.js
@@ -22,6 +22,7 @@ | @@ -22,6 +22,7 @@ | ||
22 | getTerms: getTerms, | 22 | getTerms: getTerms, |
23 | getArticleById: getArticleById, | 23 | getArticleById: getArticleById, |
24 | getArticleBySlug: getArticleBySlug, | 24 | getArticleBySlug: getArticleBySlug, |
25 | + getContentById: getContentById, | ||
25 | setHomeAbstract: setHomeAbstract, | 26 | setHomeAbstract: setHomeAbstract, |
26 | getHomeAbstract: getHomeAbstract | 27 | getHomeAbstract: getHomeAbstract |
27 | }; | 28 | }; |
@@ -85,6 +86,12 @@ | @@ -85,6 +86,12 @@ | ||
85 | }, cbError); | 86 | }, cbError); |
86 | } | 87 | } |
87 | 88 | ||
89 | + function getContentById (contentId, cbSuccess, cbError) { | ||
90 | + return getArticleById(contentId, { | ||
91 | + fields: 'id,body&content_type=ProposalsDiscussionPlugin::Topic' | ||
92 | + }, cbSuccess, cbError); | ||
93 | + } | ||
94 | + | ||
88 | function getHome (cbSuccess, cbError) { | 95 | function getHome (cbSuccess, cbError) { |
89 | return getArticleById(idArticleHome, { | 96 | return getArticleById(idArticleHome, { |
90 | fields: 'id,children,categories,abstract,title,image,url,setting,position', | 97 | fields: 'id,children,categories,abstract,title,image,url,setting,position', |
src/app/pages/header/header.html
1 | <header class="container"> | 1 | <header class="container"> |
2 | 2 | ||
3 | <div class="row"> | 3 | <div class="row"> |
4 | - <div class="accessibility-wrapper"> | ||
5 | - <button type="button" id="display-contrast" class="btn btn-link" ng-click="toggleContrast()"> | ||
6 | - <span class="glyphicon glyphicon-adjust" aria-hidden="true"></span> Alto Contraste | ||
7 | - </button> | 4 | + <div class="col-sm-12"> |
8 | 5 | ||
9 | - <button type="button" class="btn btn-link pull-right" ui-sref="entrar"> | ||
10 | - <span class="glyphicon glyphicon-user"></span> | ||
11 | - Entrar | ||
12 | - </button> | 6 | + <div class="accessibility-wrapper"> |
7 | + <button type="button" id="display-contrast" class="btn btn-link" ng-click="toggleContrast()"> | ||
8 | + <span class="glyphicon glyphicon-adjust" aria-hidden="true"></span> Alto Contraste | ||
9 | + </button> | ||
10 | + | ||
11 | + <button type="button" class="btn btn-link pull-right" ui-sref="entrar"> | ||
12 | + <span class="icon icon-user"></span> | ||
13 | + Entrar | ||
14 | + </button> | ||
15 | + </div> | ||
13 | </div> | 16 | </div> |
14 | </div> | 17 | </div> |
15 | 18 |
src/app/pages/header/header.scss
@@ -0,0 +1,16 @@ | @@ -0,0 +1,16 @@ | ||
1 | +.accessibility-wrapper { | ||
2 | + .icon-user { | ||
3 | + display: inline-block; | ||
4 | + vertical-align: middle; | ||
5 | + width: 26px; | ||
6 | + height: 26px; | ||
7 | + border: 1px solid #ccc; | ||
8 | + border-radius: 100%; | ||
9 | + background-position: 1px 0px; | ||
10 | + | ||
11 | + .contraste & { | ||
12 | + // XXX: chage for dinamic handler | ||
13 | + background-position: -0px -24px; | ||
14 | + } | ||
15 | + } | ||
16 | +} |
@@ -0,0 +1,55 @@ | @@ -0,0 +1,55 @@ | ||
1 | +<div class="container page--conheca-o-programa"> | ||
2 | + <div class="row"> | ||
3 | + <div class="col-xs-12"> | ||
4 | + <div class="article-bar" ng-class="pageProgramaContent.program.categories[0].slug"> | ||
5 | + <div class="navbar"> | ||
6 | + <div class="navbar-header"> | ||
7 | + <button class="article-bar--item btn btn-link" ng-click="pageProgramaContent.goBack()"> | ||
8 | + <!-- <span class="glyphicon glyphicon-share-alt" aria-hidden="true"></span> --> | ||
9 | + <span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> | ||
10 | + Voltar | ||
11 | + </button> | ||
12 | + </div> | ||
13 | + <div class="navbar-left"> | ||
14 | + <button class="article-bar--item btn btn-link"> | ||
15 | + <span class="glyphicon glyphicon-refresh"></span> | ||
16 | + <span class="category-name">{{::pageProgramaContent.program.categories[0].name}}</span> | ||
17 | + </button> | ||
18 | + </div> | ||
19 | + <div class="navbar-right" ng-if="pageProgramaContent.categories"> | ||
20 | + <label for="selectCategory" class="control-label sr-only" title="Selecione uma opção para acessar os programas do tema">Temas:</label> | ||
21 | + <select id="selectCategory" name="selectCategory" class="article-bar--item form-control" ng-model="pageProgramaContent.currentCategory" ng-options="category.name for category in pageProgramaContent.categories track by category.slug"> | ||
22 | + </select> | ||
23 | + </div> | ||
24 | + </div> | ||
25 | + </div> | ||
26 | + </div> | ||
27 | + </div> | ||
28 | + | ||
29 | + <div class="row"> | ||
30 | + <article class="program-content"> | ||
31 | + <div ng-if="!pageProgramaContent.program.body"> | ||
32 | + <div ng-if="!pageProgramaContent.error" class="alert alert-info" role="alert">Carregando detalhes sobre o progama...</div> | ||
33 | + <div ng-if="pageProgramaContent.error" class="alert alert-warning" role="alert">{{pageProgramaContent}}</div> | ||
34 | + </div> | ||
35 | + <div ng-if="pageProgramaContent.program.body"> | ||
36 | + <section ng-bind-html="pageProgramaContent.program.body"></section> | ||
37 | + </div> | ||
38 | + </article> | ||
39 | + </div> | ||
40 | + <div class="row"> | ||
41 | + <aside class="program--aside"ng-class="pageProgramaContent.program.categories[0].slug"> | ||
42 | + <div class="col-sm-6" > | ||
43 | + <div class="button--themed"> | ||
44 | + <button class="btn btn-block" ng-click="pageProgramaContent.goBack()"> | ||
45 | + <span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> | ||
46 | + Participe | ||
47 | + </button> | ||
48 | + </div> | ||
49 | + </div> | ||
50 | + <div class="col-sm-6"> | ||
51 | + <social-share display="'full'"></social-share> | ||
52 | + </div> | ||
53 | + </aside> | ||
54 | + </div> | ||
55 | +</div> |
@@ -0,0 +1,92 @@ | @@ -0,0 +1,92 @@ | ||
1 | +(function() { | ||
2 | + 'use strict'; | ||
3 | + | ||
4 | + angular | ||
5 | + .module('dialoga') | ||
6 | + .controller('ProgramaContentPageController', ProgramaContentPageController); | ||
7 | + | ||
8 | + /** @ngInject */ | ||
9 | + function ProgramaContentPageController(ArticleService, $state, $location, $scope, $rootScope, $log) { | ||
10 | + $log.debug('ProgramaContentPageController'); | ||
11 | + | ||
12 | + var vm = this; | ||
13 | + | ||
14 | + vm.ArticleService = ArticleService; | ||
15 | + vm.$state = $state; | ||
16 | + vm.$location = $location; | ||
17 | + vm.$scope = $scope; | ||
18 | + vm.$rootScope = $rootScope; | ||
19 | + vm.$log = $log; | ||
20 | + | ||
21 | + vm.init(); | ||
22 | + } | ||
23 | + | ||
24 | + ProgramaContentPageController.prototype.init = function () { | ||
25 | + var vm = this; | ||
26 | + | ||
27 | + var params = vm.$state.params; | ||
28 | + var slug = params.slug; | ||
29 | + | ||
30 | + vm.program = null; | ||
31 | + vm.currentCategory = null; | ||
32 | + vm.loadingContent = null; | ||
33 | + vm.error = null; | ||
34 | + | ||
35 | + vm.ArticleService.getHome(function(data){ | ||
36 | + vm.categories = data.article.categories; | ||
37 | + }, function (error) { | ||
38 | + vm.$log.error(error); | ||
39 | + }); | ||
40 | + | ||
41 | + vm.ArticleService.getArticleBySlug(slug, function(program){ | ||
42 | + vm.program = program; | ||
43 | + vm.currentCategory = vm.program.categories[0]; | ||
44 | + | ||
45 | + vm.$scope.$watch('programa.currentCategory', function(newValue, oldValue){ | ||
46 | + if(newValue !== oldValue){ | ||
47 | + vm.$state.go('inicio', { | ||
48 | + tema: newValue.slug | ||
49 | + }, { | ||
50 | + location: true | ||
51 | + }); | ||
52 | + } | ||
53 | + }); | ||
54 | + | ||
55 | + vm.loadContent(); | ||
56 | + | ||
57 | + }, function (error) { | ||
58 | + vm.$log.error(error); | ||
59 | + vm.$log.info('Rollback to home page.'); | ||
60 | + vm.$state.go('inicio', {}, {location: true}); | ||
61 | + }); | ||
62 | + }; | ||
63 | + | ||
64 | + ProgramaContentPageController.prototype.loadContent = function () { | ||
65 | + var vm = this; | ||
66 | + | ||
67 | + vm.loadingContent = true; | ||
68 | + if(!vm.program.body){ | ||
69 | + vm.ArticleService.getContentById(vm.program.id, function (data) { | ||
70 | + vm.program.body = data.article.body; | ||
71 | + vm.loadingContent = false; | ||
72 | + }, function (error) { | ||
73 | + vm.loadingContent = false; | ||
74 | + vm.error = error; | ||
75 | + }); | ||
76 | + } | ||
77 | + vm.loadingContent = false; | ||
78 | + }; | ||
79 | + | ||
80 | + ProgramaContentPageController.prototype.goBack = function () { | ||
81 | + var vm = this; | ||
82 | + | ||
83 | + var prevState = vm.$rootScope.$previousState; | ||
84 | + if(prevState && prevState.state.name){ | ||
85 | + vm.$state.go(prevState.state.name, prevState.params); | ||
86 | + } else { | ||
87 | + vm.$state.go('programa', { | ||
88 | + slug: vm.program.slug | ||
89 | + }); | ||
90 | + } | ||
91 | + }; | ||
92 | +})(); |
src/app/pages/programas/programa.controller.js
@@ -29,6 +29,7 @@ | @@ -29,6 +29,7 @@ | ||
29 | 29 | ||
30 | vm.program = null; | 30 | vm.program = null; |
31 | vm.currentCategory = null; | 31 | vm.currentCategory = null; |
32 | + vm.loadingContent = null; | ||
32 | 33 | ||
33 | vm.ArticleService.getHome(function(data){ | 34 | vm.ArticleService.getHome(function(data){ |
34 | vm.categories = data.article.categories; | 35 | vm.categories = data.article.categories; |
src/app/pages/programas/programa.html
@@ -34,6 +34,5 @@ | @@ -34,6 +34,5 @@ | ||
34 | <div ng-if="pagePrograma.program"> | 34 | <div ng-if="pagePrograma.program"> |
35 | <programa-box program="pagePrograma.program" display="'preview'"></programa-box> | 35 | <programa-box program="pagePrograma.program" display="'preview'"></programa-box> |
36 | </div> | 36 | </div> |
37 | - <div id="content" ng-bind-html="pagePrograma.program.body"></div> | ||
38 | </div> | 37 | </div> |
39 | 38 |
src/app/pages/programas/programas.scss
@@ -7,6 +7,10 @@ | @@ -7,6 +7,10 @@ | ||
7 | 7 | ||
8 | &--item { | 8 | &--item { |
9 | margin: 8px 0; | 9 | margin: 8px 0; |
10 | + | ||
11 | + @media (max-width: $screen-xs) { | ||
12 | + margin: 8px; | ||
13 | + } | ||
10 | } | 14 | } |
11 | 15 | ||
12 | .navbar { | 16 | .navbar { |
@@ -28,4 +32,7 @@ | @@ -28,4 +32,7 @@ | ||
28 | } | 32 | } |
29 | } | 33 | } |
30 | 34 | ||
35 | +.program--aside { | ||
36 | + margin-top: 20px; | ||
37 | +} | ||
31 | 38 |