Wie React Icons ausfüllen / Alternative?


14.07.2024, 11:50

Mein SCSS: @import "../../globals/_css-resets.scss";
@import "../../globals/_mixins.scss";
@import "../../globals/_variables.scss";
@import "../../globals/_media-queries.scss";
@import "../../globals/_font-face";

.ScrollToTop{
    position: fixed;
    right: 1vw;
    bottom: 1vw;
    z-index: 1000;
    cursor: pointer;
    color: #000;
    font-size: 56px;
    @media screen and (max-width : $Mobile_Breakpoint_L) {

    }
    &::before{
  /*top left content usw.*/
  @include pseudo_positionieren();
        background-color: red;
        border-radius: 100%;
        aspect-ratio: 1/1;
    }
}

.ScrollToTop_Up{
    svg{
        rotate: 0deg;
        transition: all .5s;
    }
}
.ScrollToTop_Down{
    svg{
        rotate: -180deg;
        transition: all .5s;
    }
}

2 Antworten

Ich denke die schnellste Lösung in diesem Fall wäre einfach einen weißen Kreis hinter das Icon zu legen. Dafür könntest du ggf. ein Pseudo-Element (::before / ::after) verwenden, oder einfach ein div, das du um das <IoArrowUpCircleSharp> wrappst.

Mit `aspect-ratio: 1` oder für ältere Browser auch `padding-bottom: 100%` ist das quadratisch und mit `border-radius: 50%` ein schöner runder Kreis. Background-color geben, hinter dem Icon platzieren (falls du ein Pseudo-Element verwendest, ansonsten passt das eh schon) und dann sollte das klappen :)

Woher ich das weiß:Berufserfahrung

johndont 
Beitragsersteller
 14.07.2024, 11:36

Danke aber das hatte ich schon versucht hat leider nicht so geklappt, man sieht den gleichen Effekt wie wenn ich sage

border: 3px solid white;

Innen ist es weiß aber da wo das schwarze ist bekommt außen nochmal weißen Rand.

0
timlg07  14.07.2024, 11:39
@johndont

Weil das Icon nicht den kompletten Container ausfüllt, also quasi nicht alles überdeckt?

0
johndont 
Beitragsersteller
 14.07.2024, 11:53
@timlg07

Das ist mit den Dev Tools zu sehen, kenne mich leider garnicht aus mit SVG Grafiken und wie man diese Editieren kann.

<div class="ScrollToTop ScrollToTop_Up"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm80.09 224L272 208.42V358h-32V208.42L175.91 272l-22.54-22.7L256 147.46 358.63 249.3z"></path></svg></div>

Das mit der Border habe ich gerade nachträglich in die Frage ergänzt, vielleicht kannst du es bei dir Nachstellen und was erkennen. Und dazu habe ich ein Bild ergänzt.
Ich weiß ehrlich nicht was da fehlt

0

Hindert dich was daran, den Pfeil einfach selbst einzufügen?

<svg xmlns="http://www.w3.org/2000/svg" style="width:1em" viewbox="0 0 5 5">
  <circle
     style="fill:#000000;fill-opacity:0.979592;stroke:#000000;stroke-width:0.0360134"
     id="path231"
     cx="2.5"
     cy="2.5"
     r="2.4819932" />
  <path
     style="fill:#ffffff;stroke:#000000;stroke-width:0.0362033px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     d="M 1.5549134,2.3235735 2.3382928,3.0793488 2.3251167,1.2888531 2.6868601,1.2983891 2.7036294,3.0698122 3.4594588,2.3140371 3.7385519,2.5882142 2.5167683,3.7874409 1.2831558,2.5804655 Z"
     id="path457" />
</svg>

Also dieses SVG-Bild statt <IoArrowUpCircleSharp> verwenden.

Woher ich das weiß:Berufserfahrung – Softwareentwickler & Admin

johndont 
Beitragsersteller
 14.07.2024, 12:06

Danke daran habe ich garnicht gedacht weil ich keine Ahnung von SVG-Grafiken habe, aber wir haben ja heutzutage ChatGPT.

Muss es damit nur in validen JSX Code wegen dem style umändern und minimal kleiner machen dann passt es.

0
iQa1x  14.07.2024, 12:07
@johndont

Ich habe das Ding schnell in Inkscape zusammengeklickt, ich habe den Pfeil auch nicht von Hand als Code geschrieben ;)

1
johndont 
Beitragsersteller
 14.07.2024, 12:13
@iQa1x

Achso das kannte ich garnicht, dachte immer falsch man macht so simple Icons manuell selber und aufwendige Logos mit Programmen die so teuer sind wie Adobe Canva.
Werde ich mir anschauen aber auch seltsam das react-icons nicht selber die Props hat um das innere auszufüllen.

Hatte mich schon seit Tagen gestört auf meiner Website

0