jesuserro / obsigen

Streamline your note-taking workflow with ease. This Obsidian plugin combines customizable note templates, event management, and implementation following DDD (Domain Driven Design) principles.
4 stars 0 forks source link

Creating new customized icons #9

Open jesuserro opened 1 year ago

jesuserro commented 1 year ago

This is an example for creating new icons:

import React from 'react';
import { LuCheckCircle2 } from "react-icons/lu";
import { church_icon } from './../../../assets/church.js';

interface CalendarDayProps {
  dayCounter: number;
  hasNote: string | false;
}

function CalendarDay({ dayCounter, hasNote }: CalendarDayProps) {
  let notePath = '';
  if (hasNote) {
    notePath = `obsidian://open?file=${encodeURIComponent(hasNote)}`;
  }

  return (
    <div className="day-number">
      {hasNote ? (
        <div>
          <a href={notePath}>{dayCounter}</a>
          <img className="custom-icon" src={church_icon} alt="Icon" />
          <LuCheckCircle2 size={16} />
        </div>
      ) : (
        dayCounter
      )}
    </div>
  );
}

export default CalendarDay;
jesuserro commented 1 year ago

Sí, es posible superponer dos iconos en React utilizando CSS. Para lograrlo, puedes envolver los iconos en un elemento div o span y luego aplicar estilos CSS para superponer uno encima del otro.

Aquí tienes un ejemplo de cómo podrías hacerlo:

import React from 'react';
import { FaBirthdayCake } from 'react-icons/fa';

const IconOverlay = () => {
  const iconStyle = {
    position: 'relative',
  };

  const numberStyle = {
    position: 'absolute',
    top: '0',
    right: '0',
    backgroundColor: 'green',
    color: 'white',
    borderRadius: '50%',
    padding: '2px 6px',
    fontSize: '12px',
  };

  return (
    <div style={iconStyle}>
      <FaBirthdayCake size={24} />
      <span style={numberStyle}>5</span>
    </div>
  );
};

export default IconOverlay;

En este ejemplo, hemos envuelto el icono FaBirthdayCake y el número en un div. Luego, hemos aplicado estilos CSS para posicionar el número en la esquina superior derecha, darle un fondo verde y un texto blanco.

Puedes ajustar los estilos y el contenido según tus necesidades. De esta manera, puedes superponer cualquier número en un color específico en tus iconos React.

jesuserro commented 1 year ago

Sí, puedes crear un icono personalizado con tu propia imagen en una aplicación React. Para hacerlo, puedes utilizar la etiqueta <img> de HTML y proporcionar la ruta de tu imagen como la fuente (src). Aquí hay un ejemplo de cómo podrías hacerlo:

import React from 'react';

const CustomIcon = () => {
  return (
    <img
      src="/ruta-de-tu-imagen/icono-personalizado.png"
      alt="Icono Personalizado"
      width="24" // Ajusta el ancho según tus necesidades
      height="24" // Ajusta la altura según tus necesidades
    />
  );
};

export default CustomIcon;

Asegúrate de proporcionar la ruta correcta a tu imagen en el atributo src. Puedes ajustar el ancho y la altura según el tamaño que desees para tu icono personalizado.

Después de crear este componente de icono personalizado, puedes utilizarlo en tu aplicación React de la misma manera que utilizas otros iconos de React. Por ejemplo, puedes incluirlo en un botón o cualquier otro elemento de interfaz de usuario.