Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
@ebi-gene-expression-group/react-ebi-species
Advanced tools
React component based on the EBI species icons
A React component to render organisms icons from the EBI-Species font declaratively. Demo of all supported species.
The component comes in two flavours:
.icon .icon-species
declared in fonts.css
from the EBI Visual FrameworkThe first one has the advantage that if the global CSS is changed, the component will then pick up the new styles. The second variant doesn’t need any dependency and can be used anywhere and it will just work. Notice that the second version still uses classes, but they will be uniquely scoped to the component
To install:
npm install @ebi-gene-expression-group/react-ebi-species --save
To use as a React component:
import EbiSpeciesIcon from '@ebi-gene-expression-group/react-ebi-species'
...
<EbiSpeciesIcon species={`homo sapiens`}/>
Alternatively, to use the “no class” flavour:
import { EbiSpeciesIconBare as EbiSpeciesIcon } from '@ebi-gene-expression-group/react-ebi-species'
...
<EbiSpeciesIcon species={`homo sapiens`}/>
To use as a renderer and attach the icons to DOM elements:
import { render } from '@ebi-gene-expression-group/react-ebi-species'
...
render({ species: 'homo sapiens' }, 'id-of-your-DOM-element')
Or:
import { renderBare as render } from '@ebi-gene-expression-group/react-ebi-species'
...
render({ species: 'homo sapiens' }, 'id-of-your-DOM-element')
To use directly in your browser (see the source of the demo pages):
<script src="dist/vendors.bundle.js"></script>
<script src="dist/ebiSpeciesIcon.bundle.js"></script>
<script src="dist/ebiSpeciesIconBare.bundle.js"></script>
<script>
ebiSpeciesIcon.render({ species: 'homo sapiens' }, 'id-of-your-DOM-element')
ebiSpeciesIcon.renderBare({ species: 'homo sapiens' }, 'id-of-your-DOM-element')
</script>
The species
prop should be a scientific name, although the names
given in the EBI-Species documentation and other variants are available. It is case insensitive. Have a look at the
demo page for details.
Prop | Type | Default value | Use case |
---|---|---|---|
species | string | 🐰 oryctolagus cuniculus 🐰 | The name of the species to be rendered |
groupColors | object | { warmBlooded: `indianred`, plants: `mediumseagreen`, other: `deepskyblue` } | Colours for groups of organisms |
color | string | An optional colour that overrides groupColours |
Pull requests to enlarge the mapping of species to icons, or with alternative names of species, are very welcome! Extend the mapping as required, then test locally through
npx webpack-dev-server -d
Go to localhost:9000
and see that the new icon appears there.
It is also a good idea to verify that all tests pass:
npx jest
Commit and PR away.
It would be fairly easy to cut the React dependency out of this package if you just need the mapping - if you fork then we can share the species to icon mapping.
Made in the EBI for Expression Atlas.
FAQs
React component based on the EBI species icons
We found that @ebi-gene-expression-group/react-ebi-species demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.