Below is a quick overview to get started on electronics with LEDs, if you have questions ask on our slack group.
Low power LEDs (Light emitting diodes), commonly in 5mm, 3mm or surface mount packages are a great start to electronics. To power them a series resistor should be used otherwise a small change in supply voltage can cause a huge change in current causing burn out.
Typically such LEDs are 20mA (0.02A), their voltage depends on their colour with Red typically being 2V and Blue 3.6V.
A 5V circuit with a 2V Red LED would need to drop 3V (5V-2V) over the resistor, using ohms law at 20mA this gives us: (5V-2V)/0.02A= 150Ohms so use a value higher than this.
An online calculator and bit more explanation can be found here: DigiKey Online LED series resistor calculator
High Power LEDs (eg 1W+) would waste a lot of energy (as heat) if a series resistor was used, so a current driver circuit should be used (such a circuit would be overkill for a low power LED). There are many pre-assembled modules available for this find one matched to the current requirement of your LED that is able to provide the voltage it your LED needs. There are also lots off of the shelf reflectors and lenses for high power resistors.
Over recent years COB (chip on board) LEDs have multiple LED chips all connected together in one package. In the case of White LEDs (which are actually Blue LEDs with a phosphor to produce the other wavelengths) the phosphor is added after the LED chips have all being connected together, making them look like one big LED.
For AC circuits a capacitive dropper (using the reactance of a capacitor to reduce the current flow without turning energy to heat) is typically used to reduce the current. More info on using a capacitive dropper can be learned from Big Clive, although we recommend avoiding mains DIY electronics for beginners, its good to learn the principles and Big Clive is a good place to learn.
RGB LEDs have a red green and blue LED all in one package. By varying the brightness of each colour more colours can be made.
To vary the brightness PWM (pulse width modulation) is generally used, this flashes the LEDs on/off faster than the eye can see and altering the duty cycle to changes the apparent brightness, eg if its flashing fast and on half the time and off half the time it will look half as bright as when it is on 100%, if its flashing such that its on a quarter of the time and off three quarters of the time it will appear to the eye to be 25% brightness. This can be done to each channel (R,G and B) simultaneously to produce more apparent colours. Microcontrollers are generally used to provide the PWM signals.
RGB LEDs can be bought on cheap self adhesive strips eg 5m long.
When controlling a large amount of LEDs (eg in a strip) a MOSFET is needed because a microcontroller can not source or sink much current. Pre-built controllers can be bought including ones that use an ESP8266 wifi enabled microcontroller compatible with open source projects like Tasmota or WLED
Note: Although strips of RGB LEDs are great for their decorative qualities, despite being LEDs they are not very efficient (due to duplication of electronics for each LED every LED, or every 3 LEDs on 12V ones). The inefficiency of the resister droppers add up significantly when you have 100+ LEDs. Sililarly on addressable LEDs the duplication of electronics adds up, even when in their "off" state. Also note large quantities of LEDs and low voltages mean high current supplies are often needed, always add fuses.
Addressable LEDs allow each LED on a string to be controlled by a digital signal, thus each LED on a strip does not need to be the same colour allowing for much more effects.
WS2812B are the most common 5V addreaable LEDs (50mA on full)
WS2815 / WS2815B are the equivilent in a 12V package (15mA on full)
Software libraries such as Adafruit Neopixel library (and https://github.com/adafruit/Adafruit_NeoMatrix NeoMatrix] have been written to allow users to write code without having to go too low level.
To allow users to control addressable LEDs on a higher level (Infact without writing any code) Projects like https://kno.wled.ge/ WLED do this, WLED can be controlled by its on web interfact/ app or from your smarthome (using a controller such as smartthings, node-red, or home assistant, or even integrated with some propitiatory systems like Philips Hue).
Some Features of WLED:
Some useful WLED tips
WLED is compatible with the hyperion open-source ambient lighting -project for syncing WLED controlled lights to computer or TV video screens.