Skip to content

Instantly share code, notes, and snippets.

@uwezi
Last active May 24, 2025 20:13
Show Gist options
  • Save uwezi/b4a3aa5310ff88167998709289137286 to your computer and use it in GitHub Desktop.
Save uwezi/b4a3aa5310ff88167998709289137286 to your computer and use it in GitHub Desktop.
[fancy bulleted list] A fancy bulleted list in Manim. #manim #animate #tex
from manim import *
# https://discord.com/channels/581738731934056449/1375396076231594045/1375396076231594045
class FancyBulletlist(VGroup):
def __init__(self, bulletobject=None, items=[], **kwargs):
super().__init__(**kwargs)
if bulletobject == None:
bulletobject = Dot()
self.items = items
self.bulletobject = bulletobject
itemstex = Tex(
*[item+r"\\" for item in items],
tex_environment="flushleft"
)
items = [
VGroup(
bulletobject.copy().next_to(line,LEFT),
line,
)
for line in itemstex
]
self.items = items
self.add(*items)
def FancyAnimation(self, item=0, bulletAnimation=SpinInFromNothing, textAnimation=Write, lag_ratio = 0):
return LaggedStart(
bulletAnimation(self.items[item][0]),
textAnimation(self.items[item][1]),
lag_ratio=lag_ratio,
)
class testFancyBulletlist(Scene):
def construct(self):
bullet = VGroup(
Dot(radius=0.05, color=RED),
RoundedRectangle(width=0.3,height=0.3,corner_radius=0.05, color=RED).rotate(45*DEGREES)
)
bpoints = FancyBulletlist(
bulletobject=bullet,
items=["First line", "Second line", "Third line"]
)
for i in range(len(bpoints)):
self.play(bpoints.FancyAnimation(item=i))
self.wait()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment