Change font size in Vuetify based on viewport?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







6















I have a title:



<v-card-text style="font-size:5em">
Some Heading Here
</v-card-text>


I would like to set font size to 3em when the view is XS.
Right now I duplicated it as follows:



<v-card-text hidden-xs-only style="font-size:5em">
Some Heading Here
</v-card-text>
<v-card-text visible-xs-only style="font-size:3em">
Some Heading Here
</v-card-text>


However I would like to avoid this duplication and solve the issue with CSS alone, but without having to write my own @media queries in the local .vue file. Is that possible?



Alternatively, I'm ok with using predefined classes instead of specifying font size directly or even different elements completely, e.g. something like <h3> when it's XS but <h2> on other viewports.










share|improve this question





























    6















    I have a title:



    <v-card-text style="font-size:5em">
    Some Heading Here
    </v-card-text>


    I would like to set font size to 3em when the view is XS.
    Right now I duplicated it as follows:



    <v-card-text hidden-xs-only style="font-size:5em">
    Some Heading Here
    </v-card-text>
    <v-card-text visible-xs-only style="font-size:3em">
    Some Heading Here
    </v-card-text>


    However I would like to avoid this duplication and solve the issue with CSS alone, but without having to write my own @media queries in the local .vue file. Is that possible?



    Alternatively, I'm ok with using predefined classes instead of specifying font size directly or even different elements completely, e.g. something like <h3> when it's XS but <h2> on other viewports.










    share|improve this question

























      6












      6








      6








      I have a title:



      <v-card-text style="font-size:5em">
      Some Heading Here
      </v-card-text>


      I would like to set font size to 3em when the view is XS.
      Right now I duplicated it as follows:



      <v-card-text hidden-xs-only style="font-size:5em">
      Some Heading Here
      </v-card-text>
      <v-card-text visible-xs-only style="font-size:3em">
      Some Heading Here
      </v-card-text>


      However I would like to avoid this duplication and solve the issue with CSS alone, but without having to write my own @media queries in the local .vue file. Is that possible?



      Alternatively, I'm ok with using predefined classes instead of specifying font size directly or even different elements completely, e.g. something like <h3> when it's XS but <h2> on other viewports.










      share|improve this question














      I have a title:



      <v-card-text style="font-size:5em">
      Some Heading Here
      </v-card-text>


      I would like to set font size to 3em when the view is XS.
      Right now I duplicated it as follows:



      <v-card-text hidden-xs-only style="font-size:5em">
      Some Heading Here
      </v-card-text>
      <v-card-text visible-xs-only style="font-size:3em">
      Some Heading Here
      </v-card-text>


      However I would like to avoid this duplication and solve the issue with CSS alone, but without having to write my own @media queries in the local .vue file. Is that possible?



      Alternatively, I'm ok with using predefined classes instead of specifying font size directly or even different elements completely, e.g. something like <h3> when it's XS but <h2> on other viewports.







      css vue.js viewport vuetify.js






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Aug 29 '18 at 22:17









      ierdnaierdna

      1,56222446




      1,56222446
























          2 Answers
          2






          active

          oldest

          votes


















          7














          You can use Breakpoint object, provided and tracked by Vuetify itself. Quoting the docs:




          Vuetify converts the available breakpoints into an accessible object
          from within your application. This will allow you to assign/apply
          specific properties and attributes based upon viewport size.




          One possible (and rather direct way) is mentioned in the same docpage - using computed property to calculate font-size:



          computed: {
          fontSize() {
          switch (this.$vuetify.breakpoint.name) {
          case 'xs': return '3em';
          default: return '5em';
          }
          }
          }


          ... and use it in your template directly. Of course, you can do the same with dynamic class name instead - applied on $vuetify.breakpoint.xsOnly, for example.






          share|improve this answer





















          • 1





            upvoted. it's a good solution, but JS always causes a lag, especially w.r.t. visual changes, that's why i prefer to use CSS as much as possible.

            – ierdna
            Aug 30 '18 at 13:41











          • I agree, I find it strange that the type classes don't already have built in media queries.

            – Fernando Chavez Herrera
            Dec 1 '18 at 1:36



















          5














          You can apply class based on viewport



          :class="{'subheading': $vuetify.breakpoint.xs}"





          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52086822%2fchange-font-size-in-vuetify-based-on-viewport%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            7














            You can use Breakpoint object, provided and tracked by Vuetify itself. Quoting the docs:




            Vuetify converts the available breakpoints into an accessible object
            from within your application. This will allow you to assign/apply
            specific properties and attributes based upon viewport size.




            One possible (and rather direct way) is mentioned in the same docpage - using computed property to calculate font-size:



            computed: {
            fontSize() {
            switch (this.$vuetify.breakpoint.name) {
            case 'xs': return '3em';
            default: return '5em';
            }
            }
            }


            ... and use it in your template directly. Of course, you can do the same with dynamic class name instead - applied on $vuetify.breakpoint.xsOnly, for example.






            share|improve this answer





















            • 1





              upvoted. it's a good solution, but JS always causes a lag, especially w.r.t. visual changes, that's why i prefer to use CSS as much as possible.

              – ierdna
              Aug 30 '18 at 13:41











            • I agree, I find it strange that the type classes don't already have built in media queries.

              – Fernando Chavez Herrera
              Dec 1 '18 at 1:36
















            7














            You can use Breakpoint object, provided and tracked by Vuetify itself. Quoting the docs:




            Vuetify converts the available breakpoints into an accessible object
            from within your application. This will allow you to assign/apply
            specific properties and attributes based upon viewport size.




            One possible (and rather direct way) is mentioned in the same docpage - using computed property to calculate font-size:



            computed: {
            fontSize() {
            switch (this.$vuetify.breakpoint.name) {
            case 'xs': return '3em';
            default: return '5em';
            }
            }
            }


            ... and use it in your template directly. Of course, you can do the same with dynamic class name instead - applied on $vuetify.breakpoint.xsOnly, for example.






            share|improve this answer





















            • 1





              upvoted. it's a good solution, but JS always causes a lag, especially w.r.t. visual changes, that's why i prefer to use CSS as much as possible.

              – ierdna
              Aug 30 '18 at 13:41











            • I agree, I find it strange that the type classes don't already have built in media queries.

              – Fernando Chavez Herrera
              Dec 1 '18 at 1:36














            7












            7








            7







            You can use Breakpoint object, provided and tracked by Vuetify itself. Quoting the docs:




            Vuetify converts the available breakpoints into an accessible object
            from within your application. This will allow you to assign/apply
            specific properties and attributes based upon viewport size.




            One possible (and rather direct way) is mentioned in the same docpage - using computed property to calculate font-size:



            computed: {
            fontSize() {
            switch (this.$vuetify.breakpoint.name) {
            case 'xs': return '3em';
            default: return '5em';
            }
            }
            }


            ... and use it in your template directly. Of course, you can do the same with dynamic class name instead - applied on $vuetify.breakpoint.xsOnly, for example.






            share|improve this answer















            You can use Breakpoint object, provided and tracked by Vuetify itself. Quoting the docs:




            Vuetify converts the available breakpoints into an accessible object
            from within your application. This will allow you to assign/apply
            specific properties and attributes based upon viewport size.




            One possible (and rather direct way) is mentioned in the same docpage - using computed property to calculate font-size:



            computed: {
            fontSize() {
            switch (this.$vuetify.breakpoint.name) {
            case 'xs': return '3em';
            default: return '5em';
            }
            }
            }


            ... and use it in your template directly. Of course, you can do the same with dynamic class name instead - applied on $vuetify.breakpoint.xsOnly, for example.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Nov 26 '18 at 19:24

























            answered Aug 29 '18 at 22:21









            raina77owraina77ow

            77.8k10142179




            77.8k10142179








            • 1





              upvoted. it's a good solution, but JS always causes a lag, especially w.r.t. visual changes, that's why i prefer to use CSS as much as possible.

              – ierdna
              Aug 30 '18 at 13:41











            • I agree, I find it strange that the type classes don't already have built in media queries.

              – Fernando Chavez Herrera
              Dec 1 '18 at 1:36














            • 1





              upvoted. it's a good solution, but JS always causes a lag, especially w.r.t. visual changes, that's why i prefer to use CSS as much as possible.

              – ierdna
              Aug 30 '18 at 13:41











            • I agree, I find it strange that the type classes don't already have built in media queries.

              – Fernando Chavez Herrera
              Dec 1 '18 at 1:36








            1




            1





            upvoted. it's a good solution, but JS always causes a lag, especially w.r.t. visual changes, that's why i prefer to use CSS as much as possible.

            – ierdna
            Aug 30 '18 at 13:41





            upvoted. it's a good solution, but JS always causes a lag, especially w.r.t. visual changes, that's why i prefer to use CSS as much as possible.

            – ierdna
            Aug 30 '18 at 13:41













            I agree, I find it strange that the type classes don't already have built in media queries.

            – Fernando Chavez Herrera
            Dec 1 '18 at 1:36





            I agree, I find it strange that the type classes don't already have built in media queries.

            – Fernando Chavez Herrera
            Dec 1 '18 at 1:36













            5














            You can apply class based on viewport



            :class="{'subheading': $vuetify.breakpoint.xs}"





            share|improve this answer




























              5














              You can apply class based on viewport



              :class="{'subheading': $vuetify.breakpoint.xs}"





              share|improve this answer


























                5












                5








                5







                You can apply class based on viewport



                :class="{'subheading': $vuetify.breakpoint.xs}"





                share|improve this answer













                You can apply class based on viewport



                :class="{'subheading': $vuetify.breakpoint.xs}"






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 25 '18 at 9:31









                Igor KokotkoIgor Kokotko

                9418




                9418






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52086822%2fchange-font-size-in-vuetify-based-on-viewport%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Wiesbaden

                    Marschland

                    Dieringhausen