Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CSS font-size does not work for sapper app icons. #576

Closed
wenwuwu opened this issue Mar 11, 2020 · 8 comments
Closed

CSS font-size does not work for sapper app icons. #576

wenwuwu opened this issue Mar 11, 2020 · 8 comments

Comments

@wenwuwu
Copy link

wenwuwu commented Mar 11, 2020

Hello,

I am building an app using Sapper and Font-awesome Icon Pro, and of course svelte-awesome.
I encountered a problem that setting font-size on Icons does not work (after I migrated my code from svelte to sapper)

企业微信截图_6f3656d5-61ca-4e03-ad09-638107da9419

It might be a problem with Font-awesome icons. I checked @fort-awesome source code in Node_modules folder, and there is no source code but only compiled code ( not sure if there is the cause )

@wenwuwu
Copy link
Author

wenwuwu commented Mar 11, 2020

Here is my component's source code :

<script>
    import { createEventDispatcher } from 'svelte';
    import Icon from 'svelte-awesome/components/Icon.svelte';
    import { faTimesCircle } from '@fortawesome/pro-solid-svg-icons';

    export let hideIconClear = false;
    export let editing = false;

    const dispatch = createEventDispatcher();

    function clear () {
        sendMsg('clear', true);
    }
	function sendMsg (type, value) {
        let obj = {};
        obj[type] = value;

		dispatch('message', obj);
	}
</script>

<div class="text-box-wrap" class:editing>
    <div class="left">
        <slot />
    </div> 
    <div class="menu-wrap" class:hideIconClear on:click={clear}>
        <div class="bg"></div>
        <div class="clear">
            <Icon data={faTimesCircle} />
        </div> 
    </div> 
</div> 

<style>
    .text-box-wrap {
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        width: 100%;
        height: 100%;
        border: 1px dashed transparent;
    }
    .left {
        width: 100%;
        height: 100%;
    }
    .menu-wrap {
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        height: 20px;
        width: 20px;
        display: none;
        justify-content: space-between;
        align-items: center;
        z-index: 10;
    }
    .text-box-wrap:hover {
        border-color: #c4c4c4;
    }
    .text-box-wrap.editing {
        border-color: #666;
    }
    .text-box-wrap:hover .menu-wrap:not(.hideIconClear) {
        display: flex;
    }
    .bg {
        position: absolute;
        top: 0;
        right: 0;
        width: 30px;
        height: 100%;
        pointer-events: none;
        background: #f5f6f8;
        z-index: -1;
    }
    .clear {
        font-size: 13px;
        color: #c4c4c4;
        cursor: pointer;
    }
    .clear:hover {
        color: #777;
    }
</style>

@RobBrazier
Copy link
Owner

Can I confirm, did it work in svelte but just not sapper, or did you start using svelte-awesome after you migrated over?

@wenwuwu
Copy link
Author

wenwuwu commented Mar 11, 2020

Can I confirm, did it work in svelte but just not sapper, or did you start using svelte-awesome after you migrated over?

I just tried to use svelte-awesome in my svelte app (Before I was using fontawesome-svelte), it has the same problem: font-size does not work. This happens both in svelte and sapper.

@RobBrazier
Copy link
Owner

RobBrazier commented Mar 11, 2020

Okay thanks. It could be because it's a SVG that is being rendered, not actually a font, but I'll investigate if there is something that can be done.

Could you try using scale in place of font-size? See https://robbrazier.github.io/svelte-awesome/ for an example. This will let you adjust the size

@wenwuwu
Copy link
Author

wenwuwu commented Mar 11, 2020

Thanks a lot. Actually setting width and height on svg element directly still works. But I would like to keep it consistent between svelte and sapper, and keep on using font-size when using fontawesome icons (and for my old projects) . It will help a lot if font-size works as usually. thanks again for investigation.

@benmccann
Copy link
Contributor

Sapper's basically EOL at this point. I'd recommend using SvelteKit. It works for me on the latest SvelteKit now. I don't have to do the Sapper workaround either and can just do import Icon from 'svelte-awesome';

@RobBrazier
Copy link
Owner

provisionally closing as sapper is deprecated now over sveltekit

@Raynard87645
Copy link

You can add a root style and import into main icon div by add style attribute to div
:root {
--color: #000;
}
.main {
color: var(--color);
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants