Posted in ideas
682
8:55 am, October 6, 2021
 

Idea: Google Font Dropdown Selector Code

just an idea at the moment, a dropdown list of google fonts and when selected it loads that selected font using the @import css tag. 

Loading the fonts Gist : not tested

https://gist.github.com/PeterBooker/7199234 

Using the google font API

https://stackoverflow.com/questions/36872550/google-web-fonts-in-a-dropdown-list-dynamically-with-respective-font-weights 

PHP

<?php
/* 
 * Google Font Chooser
 */

$path = "/home/kebopowe/public_html/functions/fonts.txt";
//$path = "http://kebopowered.com/functions/fonts.txt"; // use this if remote

$request = file_get_contents( $path );

$fonts = json_decode( $request );

?>

<!DOCTYPE html>
<html>
    
    <head>
        
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
            
        <style type="text/css">
            select {
                border: 1px solid #ddd;
                font-size: 18px;
                height: 12em;
            }
            select optgroup {
            }
            select option {
                padding: 2px 6px;
            }
        </style>
            
    </head>
    
    <body>
        
        <h2>Google Webfonts Selector</h2>
        
        <select id="font-selector" style="font-family: '<?php echo $fonts->items[0]->family; ?>', Arial,​ sans-serif;" size="4" multiple="multiple">
            
            <?php foreach ( $fonts->items as $font ) { ?>
            
            <optgroup style="font-family: '<?php echo $font->family; ?>', Arial,​ sans-serif;" data-src="http://fonts.googleapis.com/css?family=<?php echo str_replace(' ', '+', $font->family); ?>&text=<?php echo str_replace(' ', '+', $font->family); ?>">
                <option value="<?php echo str_replace(' ', '+', $font->family); ?>"><?php echo $font->family; ?></option>
            </optgroup>
            
            <?php } ?>
            
        </select>
        
        <script>
            $( document ).ready(function() {
                
                setTimeout( function() {
                
                    $.each( $("#font-selector optgroup"), function() {

                        var src = $(this).data( "src" );
                        $('head').append("<link href='" + src + "' rel='stylesheet' type='text/css'>");

                    });
                
                }, 0);
                
                $("#font-selector").change(function() {
                    var selected = $("#font-selector option:selected").text();
                    $(this).css( 'font-family', selected );
                });
                
            });
        </script>
        
    </body>
    
</html>

View Statistics
This Week
247
This Month
1161
This Year
4956

No Items Found.

Add Comment
Type in a Nick Name here
 
Search Code
Search Code by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code here, mostly for my reference. Also if i find a good link, i usually add it here and then forget about it. more...

You could also follow me on twitter. I have a couple of youtube channels if you want to see some video related content. RuneScape 3, Minecraft and also a coding channel here Web Dev.

If you found something useful or like my work, you can buy me a coffee here. Mmm Coffee. ☕

❤️👩‍💻🎮

🪦 2000 - 16 Oct 2022 - Boots
Random Quote
“If you just sit and observe, you will see how restless your mind is. If you try to calm it, it only makes it worse, but over time it does calm, and when it does, there’s room to hear more subtle things. You see so much more than you could see before. It’s a discipline; you have to practice it.”
Steve Jobs
Random CSS Property

:target

The :target CSS pseudo-class represents a unique element (the target element) with an id matching the URL's fragment.
:target css reference